(navigation image)
Home American Libraries | Canadian Libraries | Universal Library | Community Texts | Project Gutenberg | Children's Library | Biodiversity Heritage Library | Additional Collections
Search: Advanced Search
Anonymous User (login or join us)
Upload
See other formats

Full text of "68 Micro Journal Volume 11 Number 05"

MICRO JOURNN. 



Austral) a A $7.95 New Zealand NZ $9 85 
Singapore S $14 95 Hong Kong H $29.00 
Malaysia M $1425 Sweden 30-SEK 



$2.95usa 



OS-9 Atari Amiga Mac S-50 

HHMi «JtO» 68008 68000 68010 68020 68030 

"ITie Magazine for Motorola CPU Devices For Over a Decade 1 

This bmc: "Basically OS9 p. 13 

"C" User Notes p. 6 

68XXX ROM Monitor p. 24 

MUMPS - PC68K1 - 0S9 p. 20 

Logically Speaking p. 38 

Tht llll Bucket Mulurula News Mtleuet, Li-itcK, l;pdalo vie 

nc SK^UOS Atari Amiga 

Ua-7 FLEX Macintosh X User Ctmirihaor Journal And L«ls More! 





The problem with most real-lime operating systems is 
simple, they're not an integrated solution. You end up dealing 
with a multitude of suppliers for languages, compilers, debug- 
gers and other important development tools. And when 
something does go wrong, it can be a frustrating experience 
trying to straighten out the mess. 

Why Not Try the 
Microware One-Stop 

Total Solution? 

Microware's OS-9 Real-lime 
Operating System is a total inte- 
grated software system, not just 
a kernel. \Afe offer an extensive 
set of development tools, lan- 
guages, I/O and Kernel options. 
And this total integrated solution 
is entirely designed, built and 
supported by the same expert 
Mkroware team. 



Mkrnw.Hr ►> j itKitfcnii If.Hlcni.iik til 
Miriow.wi*i>y*lwn%< oriaxr.uron 
OS-I M .1 (Mtlmulk I d Mltnfwjrv 
U N IX Is j luifcmjik ul AT.V I 

VAX ft j if ... 1. 111,11 1 ul UtC 



The OS-9 Success Kil 



A Total Integrated Solution for Your Next Project 



Development Tooli: 

C Source Level Debugger 
Symbolic Debugger 
Syslem Stale Debugger 
uMACS lexl Editor 
Electronic Mall 
Communications 
Super Shell 

Kernel Options: 

MMU (Secunly Proleclionl Support 
Mai* Coprocessor Support 

' Rnkn i <» UMU versloM liHUSH 
"WkXD 



Modularity Lets YOU Choose lust What You Need. 

The modular design of OS-9 allows our Operating System 
to adapt as your requirements change. OS-9 can support a 
complete spectrum of applications — from embedded ROM- 
based oxte in board-level pnxiucts all the way up to large- 
scale systems. 

Support is Part 
of the Package. 

Microware is proudly setting 
the industry's standard for cus- 
tomer support. Ybu'll find pro- 
fessional and comprehensive 
technical documentation and a 
Customer Hotline staffed by 
courteous and authoritative soft- 
ware engineers. 

So slop messing with sim- 
ple kernels and independent 
suppliers. Call Microware today 
and find out more about the 
"One-Stop Integrated Solution" 
with OS-9! 



Langu ages: 

c- 

Basic 

Pascal 

Foitian 

Ada" 

Assembler 

I/O Options: 

SCSI SASI&SMD Disks 
J-. S-, 8-inch Diskettes 
Magnetic Tape 
Eta met- TCP/ IP 
Axon el- OS-9 'Net 



— 7nfot0WtoL*~ OS-9 



Microware Systems Corporation 
1901 N.W. 114th Street 
Des Moines, Iowa 50322 
Phone: 515/224- 1929 



Western Regional Office 
4401 Great America Parkway 
Santa Clara, California 95054 
Phone: 408/ 980-0201 



Microware japan Ltd. 
41-19 Honcho 4-Chome 
Funabashi City 
Chiba 273, Japan 
Phone: 0474 (22) 1747 



Mustang 020 Mustang OS Benchmark* 



I8M AT 7J00 Xau Sy 3 

AT»T 7300 UNtX k:a<oio 

D6C VAX II/IMUNUCBoUq'4.2 

OCCVAXll/MO ' 

(WIOSItlKIHhi 

U0XOS4MKl0Mhi 

MUSTANC -m IMH OS-f MI /» Mat 

UVSIAMC 40* U*M OS-* MX tt tiki 

mustang -a* twnucuut VitU'Ltx ittikt 






KitlinaUjd MIPS MUSTANCO10 4 J MIPS, 

Bum to t - It Mint Motorola Spec. 



U=c 



9.7 




7.2 


43 


36 


32 


U 


3.2 


!U 


9 


63 


40 


».» 


«J 


JJ 


»M 


/.» 


IJ2 



OS-9 



OS -9 Prebaauaial V«r 


JS50O0 


'Include* C Onnpde i 




BtfkOV 


450 00 


CCanaJlat 


500 00 


68000 Dtaaambler l>lwa> add: llOOflO) 


100 00 


Kami] 77 


750 00 


Miaow-an Pucal 


500 00 


OroawoA. PlKal 


900 00 


SQto-Cteptt 


49500 


Stylo-Spoil 


195 00 


Stylo- Ma ft 


17500 


Stjto.Qt.p6 Spell )4ue» 


69500 


PATwATkwcc 


229 O0 


1U5T »«T.o«r<» 


19.95 


PAT/1UST Combo 


249 JO 


Scaiptai»(netal«i«) 


99500 


COM 


12500 


tlnlFLEX 




UoFlfiX MKS> <v> 


J45000 


Soxes 64jao> 


ISOjOO 


SotMop 


200X0 


BASIOVM-oBBaas 


30011} 


CCoaaaao 


35000 


COBOL 


75000 


CMOOEM itara 


10000 


TMOOEM .iVaam 


100 00 


XTALK(m>A4) 


9MJ 


Croaa A*»—nb»a 


5000 


FlB Lf Ml T7 


450.00 


So4P«0« (MS Ib1o»0 


99500 


Sianda/d MUSTAKO-OiD™ >!>ol»d 11 J Mht 




A4JIJ l6*Mte6«(D0 


375.00 


Add In !6* Mht 6*Hl 


37500 


Add hi 20 Mm WOK* am 


750.00 


l6PotMp.KS.232 


33500 


Rcqubrf 1 or 2 *<%hoj Caid. bale* JU232 Aoapu 


165.00 


f-ath card luppott 4 additional aw. poni 





(total of 36 mj aj ports ■uppunad ) 

oOllnPaiilldl/Ocaid 
U>e> 3 66S0 tflaufaoo/Tkna caipl. 
6 frowpa of a Itmeacb. atparafe buOar 
daauiaD pasta (ox each 0oap. 



na> [at tots djp an) POA devicea * a 

r ana up to SI 2K ORAM 



AXOiET eaaUEad aaV 

LAN aaft«va drnw. 



■ L-AM.&balOBUea 



call. 
12000 



tW 

Spaciel fa, ,11. MU4Ta«0-<7W» 
lots 00 SAVE 1300,00 
batata n Otasxata 

AD MUSTANOOaF* nm «d t 



The 

P 

R 

O 

f 



Mustang Specifications 

12J Mhz (t^ptMaml 16.6 Mhz svailablo) MC68020 full 32-bii wide p*Ui 

32-bti wide data and ■ckbea bitfas, noo-muluplued 

on chip instruction cache 

object code cmpiubie with «U 68 XXX family faxaaeaaqp 

enhanced wututian set . maih co-procnux interface 

&8881 mtih hi -speed flatting pant cD-pviEzauar (i^Kiiiul) 

direct extension of full tSflOZO inflnM^im set 

full suppon IEEE P754. draft 10.0 

tniavariteaal and other tcianbfic math function 

2 Megabyte of SIP R M (512 * 32 bit o*g animation) 

up to 256X byte* of EPROM (64 it 32 bin) 

4 Asynchronous scnal 1/0 pons standard 
optional to 20 sens! porta 
standard RS-232 interface 
options, network interface 
buTTered 8 bu parallel port <1/2 MC68230) 
Centronics type pinotii 
CXp4AAon &XW&&I f Of 1/0 dcviiCo* 
16 bit daiapnh 
256 byte add reat space 
2 inierrupt inpt.u 
clock snd control signals 
Motorola I/O Channel Module* 
time of day clock/calendsr w /battery backup 
cofUiollcf for 2, 5 1/4" f,oppy disk dhves 
iu\g\c or double side, single or double daumy 
35 to 80 track selectable (48 -96 I PI ) 
SASL interface 

piogrimmiblc penodic interrupi gcneiaior 
micnwpt rate trorn micro- second* lo second* 
highly accurate lime na*x<5 PPM) 

5 bit senaeswiiach. readable by the CPU 
Hardware singta- step capability 



These tu-spmd 68020 syaioms arc pn»o*ly wonaingai NASA. Airxmc Enersy Cammuauon. 
CrrroTanna. t Agencio as well as Uiuvemucs. Business, Lahs, and other Oillcai Applicauon 
Centen, -.orW^dc, wt>cn speed, math cTunchingand oiutti-uaer. muUi-Uikirtg UNIX C level 
V ccn.ptu.bil.ly and low coat is a must. 




Don't be mislead! 

ONLY Data-Comp 

delivers the Super 

MUSTANG -020 



Only the "PRO" Version 
of OS-9 Supported! 




This is HEAVY DUTY 
Country! 



For a imtBd um» m urll otfv a S400 lrada-fl hi y^uTH 
otdSSXXX SfiC. Must IM wcyliinp proewty and ' 
I cornptarfa wrih aj toftwin, cattsav and o^cuma>n4MiQn. , 
C«l tor mora) M orrnHlon 



Price List: 






SHuung-OM SBC 




J 2490.00 


Cabinet wAwJuhinj, PS 




J2W.9S 


5--80 nick (lion>y DS/DO 




J269.9S 


Roppy Cable 




S»95 


OS-9 58K Prafeaoonil Vernon 




S8S0.00 


COnnpUc(J500 Value) 




I«/C 


Winchoocr Cable 




$39.95 


Wincnostu Dnve 23 Mbyte 




$895,00 


lUrd Ouk Controller 




$395.00 


ShippintUSAUPS 




$20.00 


UnirT-EK 


l^u 


$100.00 


MC6888) ftpmahprcccuor 


Add 


$77510 


I4.47 Mh I MC68020 




$375.00 


16.67 Mht MC6888! 




$37501) 


20 Mh i MC68020 S>. 




$750.00 


Note all 6888) chipa wort with 20 Mhz Sy. 






Told: 


$5299 80 



NEW LOWER PRICES 

25 Mbyte HD Q2993H $3749.80 
85 Mbyte HD $52*&SH $4548.80 



f 



Note: Only Professional OS-9 Now Available 
(68020 Version) Includes ($500) C Compiler - 
68020 & 68881 Supported - For UPGRADES 
Write or Call for Professional OS-9 Upgrade Kit 



Data-Comp Division 

A Decade of Quality Servtce" 




a ^-V-VRpi^ Systems World-Wide 
Computer Publishing. Inc. 5900 Cassandra Smith Road 
Telephone 615 842-4601 
^ FAX (615)842-7990 



Telex 510 600-6630 Hixson, Tn 37343 



b8 Micro Journal 



May '89 



A Member of the CPI Family 



68 Micro 
Journal 



10 Years of Dedication to Motorola CPU Users 



6800 6809 68000 68010 68020 



The Originator of "DeskTop Publishing™ " 

Publisher 

Don Williams Sr. 

Executive Editor 

Larry Williams 

Production Manager 

Tom Williams 

Office Manager 
Joyce Williams 

Subscriptions 
Cheryl Hodge 

Contributing & Associate Editors 

Ron Anderson Dr. E.M. "Bud" Pass 

Ron Voigis Art Wellw 

Doug Luric Dr. Thco Elbert 

Ed Law & Hundreds More of Us 




"C" User Notes 6 

Basically 0S9 13 
Come On In 

The Waters Fine 20 

68XXX ROM Monitor 24 

Logically Speaking 38 

Bit Bucket 46 

Classifieds 58 



Pass 
Voigts 

Plus Five 
Luni 
Jones 
All Of Us 



^kag&T^KEW&W #&!*»■ %t 




68MICROJQ] 

(^Contribute Nothing - Expect Nothing " dmw i 9SftJ ) 



COMPUTER 
PUBLISHING, INC. 

"Over a Decade of Service" 

"World 





68 MICRO JOURNAL 

Computer Publishing Center 

5900 Cassandra Smith Road 

PO Box 849 

Hixson, TN 37343 

Phone (615) 842-4600 Telex 510 600-6630 
Copyrighted © 1987 by Computer Publishing, Inc. 
68 Micro Journal is the ori^inaT'DeskTop Publishing" product and has 
continously published since 1978 using only micro-compulcrs und 
special "DeskTop" software. Using first a kit built 6800 micro com 
puler, a modified "ball" typewriter, and "home grown" DeskTop Pub 
lishing software. None was commercially available at that time. For 
over 1 years we have been doing "DeskTop Publishing"! We origi- 
nated what has become traditional "DeskTop Publishing" ! Today 68 
Micro Journal is acknowledged as the "Grandfather" of "DeskTop Pub- 
lishing" technology. 



68 Micro Journal (ISSN 0194-5025) is published 12 times a year by 
Computer Publishing Inc. Second Class Postage paid at Hixson, TN. 
and additional entries. POSTMASTER: send address changes to 68 
Micro Journal. POB 849. Hixson, TN 37343. 



Subscription Rates 

1 Year $24.50 USA, Canada & Mexico $34.00 a year. 

Others add $12.00 a year surface, $48.00 a year Airmail. USA 

funds. 2 years $42.50, 3 years $64.50 plus additional postage 

for each additional year. 

Items or Articles for Publication 

Articles submitted for publication must include authors name, ad- 
dress, telephone number, date and a statement thai the material is 
original and the property of the author. Articles submitted should be 
on diskette. OS-9. SK*DOS, FLEX. Macintosh or MS-DOS. All 
printed items should be dark type and satisfactory forphoto-rcproduc- 
lion. No blue ink! No hand written articles - please! Diagrams u.k. 

Pleas 't ■ do not format with spaces any text indents, charts, etc. (source 
listing o.k.). We willedit in allfor mat ting. Text should fall flush left and 
use a carriage return only to indicate a parag raph end. Please write 
for fee authors guide. 

Letters & Advertising Copy 

Letters to the Editor should be the original copy, signed ! Letters of grip 
as well as praise are acceptable. We reserve the right to reject any letter 
or advertising material, for any reason we deem advisable. Advcitis- 
ing Rates: Commercial please contact 68 Micro Journal Advertising 
Department. Classified advertising must be non-commercial. Mini- 
mum of $15.50 for first 15 words. Add $.60 per word thereafter. No 
classifieds accepted by telephone. 



May '89 



68 Micro Journal 



PAT - JUST 

PAT WITH 'C> Source $229.00 
JUST WITH 'C Source $79.95 

OS-9 68K - 68008 - 68000 - 68010 - 68020 - OS-9 68K 

PAT FROM S. E. MEDIA A FULL FEATURED SCREEN ORIENTED TEXT EDITOR 

with all the best of PIE. For those who swore by and loved PIE, this is for YOU! AH PIE features 
& much more! Too many features to list. And if you don't like ours, change or add your own. C 
source included. Easily configures to your CRT terminal, with special configuration section. No 
sweat! 



COMBO 



PAT 



JUST 
Special $249.00 



JUST from S. E. MEDIA — Text formatter written by Ron Anderson; for dot matrix printers, 
provides many unique features. Output formatted to the display. User configurable for adapting to 
other printers. Comes set -up for Epson MX80 with Graflex. Up to 10 imbedded printer control 
commands. Compensates for double width printing. Includes normal line width, page numbering, 
margin, indent, paragraph, space, vertical skip lines, page length, centering, fill, justification, etc. Use 
with PAT or any other text editor. The ONLY stand alone text processor for the 68XXX OS-9, that 
we have seen. And at a very LOW PRICE! Order from: S. E. MEDIA - see catalog this issue. 




Southeast East Media 

59i0 Cassandra Smith Rd 

Hixson, Tn. 37343 

(615) 842-46<X) FAX (615) 842-7990 



Shipping 
U.S.A. $4.50 

CANADA $7.50 

FOREIGN $25.00 



68 Micto Journal 



May '69 



(OIL® 





@OT ©IP@<S2^IL 




SCULPTOR 



From tlie world's oldest 
& largost OS- 9 software house! 

CITS PROGRAMMING TIME UP TO 80% 

6809/68000-68030 Save 90% 

SCULPTOK-a 4GL ■ Only from S.E. Media at these prices. OS-9 levels one and two (three G1MIX) 6809, 
all 68XXX OS-9 standard systems. Regular SCULPTOR versions 1.4:6. One of if not the most efficient 
and easy to develope DBMS type systems running under OS-9. A system of flexible keyed file access that 
allows extremely fast record and data retrieval, insertion and deletion or other programmed modifica- 
tions. Access by key or in ascending order, very fast. The system provides automatic menu generation, 
compilation and report generation. Practically unlimited custom input format and report formatting. A 
rich set of maintenance and repair utilities. An extremely efficient development environment that cuts 
most programming approximately 80% in development and debugging! Portable, at source level, to MS- 
DOS. UNIX and many other languages and systems. 

Standard Version: 1.14:6 6809 - $1295.00 

68000 $1295.00 

68020 $1990.00 



A. 



Due to a "Special One Time" Purchase, We Are 
Making This Savings Offer. Quantities Limited! 
Once this supply is gone the price goes back up! 
System OS-9: 6809/68000-68030 
•Regular s 12 9 5.00 



ONLY 



$ 99.95 




S.E. MEDIA 

POB 849 5900 Cassandra Smith Road 

HIXSON, TN 37343 61 5 842-4601 
Telex 510 600-6630 FAX (615)842-7990 



AVE - WHILE SUPPLIES LAST! 




May '69 



63 Mao Journal 



cfevfumc: (6 1 5 1 842-4600 5 Oil tfl 'EciS t tMediCl 



elext 5HK00bhM) 



QS-9, 'Uni'JL'LX, */VEX, S9C&0S 



'fa*: (615) 842-7990 



Sculptor 



Pull OEM & Dealer Discounts Available! 



THE SCULPTOR SYSTEM 

Vidjat* t cmtoem* pdkpwU InaaTfh famawaacai lanapaaf* 

■AifAm rlHal.M i lump i in i il v*n 

P iafiiiw m jw%wini*M^l mii n i ii^»*i> 
flrinrirt*i ii <li ilium* fm'nl[aii i i t rr 
[irtr**i W*Vi**-n v-j I *»«J •»« ■**! «t»d L* n** 
* mvita can b» fhi Tw uJ m tutf * *** •* w 

AN ESTABLISHED LEADER 

V uajitra «■« ifcv»jfc»p»il by jJ i' ■* MILiftak wtK> r u n duet * 

■ i aaatila m Pm nifhHM rnarhaf H «*• Iwx h*»d «i 1'M 3 wl 
■m Inert. Wth fe#*HW t hi mi *n *«5 niHftqiufernn 
hw. Srkllpkv h#» tiMT> ttHhrad and i-ftfw* pd h h tu ffla 

.»i».»irtwttw^i:fci^«*4r im aatalawaladWsa. *v*tt» 



SYSTEM ^DEPENDENCE 



THE PACKAGE 



OATACJCTWNAKY 



I Stf#MhfctffnlM9i*^ 



INDEXING TECHMQUt 

MCOfd Su^*« mMlM t R Ifr >iln ^> 

anffead f <arfc m** **»* • ^dMM' ^ V «m^it^» h 

hMtkuKf»i«ilm«phl iuihnDl*n«iwniU>h>li) 

uAbir^w^lxlun codetta ant catwlllr 



RE1WTKIMAI Oft RATORS 



I Harm iwup i ii 

S*Wu*a»y 



Facts 



Features 



\*fS fh# Rmw bw >pl Kfvinwl nanh-w* u 



IMifn Iwi^i TikiM iNmt (Mini lap ki 



APPLICATION PORTABIJTY 

K> "tJny lit wrftwar » h—waW iWhnml t 

MafpM .mauM jndi»*ni**rt Vi4i<<tmbfMrf'<tiin4r>4frvH 

on ■ And *lon* PC *nd wtthmUny laaiaaima iq t*w 

[nigiwnt njf i th»*m i '*> * Ufrjl im* uht w,T*rm Fur 
tdfcaKi Mntm thai imih Hut thaw puitmh r am nt«h * 



HMnml 



v Jhrtw dw^vn i J 4 



SPEED AND EFFICIENCY 
Sii4*w.aM»,afaMl*ndnK-ft*ff»i 
pnmdn rakwi imwl iridMa hwn *s*#" #»* taw* . » 

Snatpfc* » kw* WmrnSipn knWp m c.vtapaV.] bj* 
ilim^wf ir*rmvill*lp n»V **!" <i ■■* ukrt ** HtpH 



rWTERNATIONAU-Y ACCEPTED 

K. up™j»*k*(*f nmt^tAifiuil*, St«A** 

««Hi>ii*wPi*wl4na^andtMnitnW V w>«wnr Th* 
»ta*«i 4 am dull pnrd»lfcjr m fc tw * i m| i^h w il afcinai 
aryhAfTv n «V <ivU *wafniaaaa *v **»*»**» and {lutew 



at 
DATAFGXSTKUCTURE 



INPUT DATA VALIDATION 

' i " ' i — 'hi ■■In i ' i) J ii 



tbyWdMi 

MdhUtton ltd In date theSonMV 

AHrmMETK OPERATORS 
Uh«v- 



and LotfuKlfitf 



Sculptor for 68020 
OS-9 & limFLEX 

$99S 




SPECIAL FEATURES 

t l*D 4#lf 4rt+,rrwJ* 

f i fin w iL^ginan ii ' 

T«TmniJ ml praun mtatvndrm * 

Pi* anrtn paamj hr 

OHTOrfcMbbrdMlah 



MAXIMA AND MINNA 



'.s .^.K |> ■ ■ > . 




LMktVtn 
Jhuwt 



Aridrntrlir 



PROCJ^AMS 

CM«arr 



I ranWt«feFH 



Mntu intotprrtn 



■ S*hjp|«nlmti«*fcm*fci 

SCREEN FORM LANGUAGE 

Pn^ramrmnr drNwd ripbint awl 

MiApb Ibn u^rti Hi inw |wi ^f yn 
t Maulr ur pn^anvnx j*» i—n -4 
iai i(On 1 pAiiini 

■flM 

j — iTi-r'm fcafili. ilnmjatii 

■etvH 

F«da\ *n cat tuh pnpMM *rt.1 



MUSTANG-020 Users ■ Ask For Your Special Discount! 



r" 



"i 



mustang-020 



*$1.990 $398 
*$ 1.295 $299 



PC/XT/ AT/MSDOS $69S $139 $299 



$795 
MUSTANG-08 *$ 1.295 $259 $495 Call or write for prices on the following systems. 

XENIX SVS 111 & V. MS-NET. UNIX SYS 111 & V. ATAHJ OS-9. 68K. UNOS. UI.TKIX/VMS IVAX.RKGALI. ST1U1)E. Al.TOS. AJ>KICORr. AKKTT-:. ARM 
STRONG. ULEASDALE. CltAKLES 1UVKRS.GMX. CONVKRG.TECH. DEC. CIFEH. EQUINOX. COLLI). I UM IONEV WEU-. IIIM. IVFGI.. MEUA1>ATA. 
MOT0ROI7V. NCH. N1XDORF. N.SrAH. OUVirtTl/AT&T. ICL, PERKINS K1AIEK. II lll.UCS. I'lXEI.. I1.KSSEY. IIJ'-XUS. l"OSm*ON. PRIME. SKQUICNT 
SIEMENS. SWTVC. SYS11ME. TAN1JY. TOUCH. UNISYS. ZYUOG. IJTC. 

* For SPECIAL LOW SCLIMTOK prlct>N twpt't-lally for BKOS^iKXW OS » SyMcms - StH- Spe- 
cial Ad this Inhuc. It mi mi Int. "H Immi ttwy are gone the prlee k<m>n baelt up as above!'"' 

... Sculptor Will Run On Over 100 Other Types of Machines ... 

... Call for Pricing ... 

!!! Please Specify Your Make of Computer and Operating System !!! 



J 



* Full Devdopemenf Package 
•• Run Time Only 

••• C Key Flic Llbrarr 



^,^,-, ;,„-.„ i^^M South 'East Media 

rrmV.'SSSa S300CasiaxJrttSmilA1tf..tfvQ(m.rn.M43 
S:STSS:^( lHaaaBB TibpUmi: (ai)S4Z^0O TcbG S1CXXK&0 

•OS-* Lf ■ Trtdidvra of Mfcrawt and fcaotoroto*rlJOt and tJnaVLKX art Tnatonaru uf Ttthntai Syatfafat Ce>nMllaiito-*JllC"LKJS I 




•* Shlpplns •• . 




'ia«Vrnrd* 


AM 1* USA. (win. USD 
d»Jj» S>to AM 5* 
F<nhja Alnart AM ■•» 




or aao. ni»pin ox> 

s>r.K -Suftw»r< S jitenu Cor*. 


a Tradtfisvfc vt 



68 Mcr o Journal 



May '89 




The C Programmers 

Reference Source. 

Always Right On Target! 

( C User Notes 



A Tutorial Series 



By: »r. E. M. 'Bud' Pass 
1454 Utta Lane N.W. 
Conycrs, G A 30207 
404 483-1717/4570 

Computer Systems Consultants 



INTRODUCTION 

This chapter provides information about 
MINIX, a new operating system, similar 
to UNIX, which is now available for 
680x0 processors. 

It discusses several approaches to 
enhancing the use and debugging of C 
code containing mcmoiy allocation and 
deallocation. 

It provides a new approach to program 
tiacing under UNIX which is a consider- 
able improvement over prior techniques. 

It provides and solves a little problem of 
computing the next smaller power of 2 
than a given number in the most efficient 
manner. 

It presents a technique of using function 
airays for efficiently switching control to 
one of several functions. 

MINIX 

MINIX is a new operating system that is 
system-call compatible with V7 UNIX. 
Unlike AT&T UNIX, it is available with 
all the source code, both the kernel and 
all the utilities. MINIX has been running 
on the IBM PC, XT, AT, and many 
clones, including 386s, for over two 
years. The IBM version is in widespread 
use worldwide and was written by 
Andrew S. Tancnbaum. 



It has recently become available on a 
68000-bascd computer, the Atari ST. 
When MINIX is run on the Atari ST (or 
McgaST) it replaces the native operating 
system (TOS) and turns the computer 
into a normal UNIX machine. The Atari 
port was done by Johan Stevenson and 
Jost Mullcr. 

Several groups arc currently attempting 
to port it to other 680x0-bascd computers 
(Amiga, Macintosh, PT, Terminus, etc.). 

MINIX does not contain any proprietary 
AT&T code. Thus, both the operating 
system and the utilities arc all brand-new 
code and arc unencumbered by AT&T 
license fees and other restrictions. 

Minix Features 

- Systcm-call-compatiblc with V7 UNIX 

- Kcmighan and Ritchie compatible C 
compiler included 

- Shell functionally identical to the 
Bourne shell included 

- Full multiprogramming (fork+cxec; 
background jobs in shell) 

- Full screen editor inspired by cmacs 
included 

- Ability to read and write TOS disks 

- Over 90 familiar utilities provided 

- Over IN library functions provided 



- Floppy-only systems and hard-disk 
systems supported 

• Full operating system source code (in 
C) included 

- Source code for all the utilities (except 
C compiler) included 

Partial List of the Minix Commands 

ar as badblocks bascnamc cal cat cc ccm 
eg chmem chmod chown clr emp comm 
compress cp cpdir epp cv dale dd df diff 
diskcheck du echo cxpr factor false find 
fix fsck gcilf grcp grcs head kill Id In 
login lpr Is make megarte mined mkdir 
mkfs mknod more mount mv od opt 
passwd pr printcnv pwd rcadall rcadfs rev 
rm rmdir roff sh shar size sleep son split 
stty su sum sync tail lar tec test time tos 
touch tx Ircecmp true umount uniq 
update uudecode uuencode wc 

Partial List of the Minix Library Func- 
tions 

abort abs access alarm atoi atol bcopy brk 
call chdir chmod chown chroot cleanup 
close cicat crypt ctimc ctypc doprintf dup 
dup2 exec exit fclose fflush fgcis fopen 
fork fpiintf fpuls frcad freopen fscck fsial 
ftcll fwritc gctc gctcgid getenv gctcuid 
gctgid gctgrcnt gctpass gctpid getpwent 
gets gctuid guy index ioctl isatty iloa kill 
link Iscek malloc mknod mktemp mount 
open pause petTor pipe popen putc puts 
qsort rand read regcxp icgsub rindcx 
scanf sclbuf sctgid setuid signal sleep 
sprintf slat slime strcal stremp sircpy 



May '69 



66 Micro .loumaJ 



sirlcn strncai simcmp stmcpy siiy sync 
system icrmcap lime limes umask 
umouniungcic unlink ulimc wail write 

Newsgroup 

Thc:e is a USENET newsgroup, 
compos. minix. concerned with MINIX. 
This group is galcwaycd to ihc AR- 
PANET. BITNET. etc. I f you cannoi 
read USENET newsgroups directly, you 
can gel on ihc mailing list by sending a 
request to 



info-minix-rcqucst@udcl.edu 



The group is very active, and well worth 
reading if you arc interested in MINIX. 

It is used for reporting bugs, fixing bugs, 
posting new software, asking and 
answering questions, and so on. At .some 
point it may be necessary to split the 
group (IBM vs. Atari; source code vs 
discussion: ...) bui for the time being, 
there arc no plans 10 split it. Time will 
tell. There arc archives of the messages 
that have been posted to comp.os. minix. 
For an information sheet telling about 
MINIX and the archives, send email to 
ast@cs.vu.nl or waich the newsgroup. 

Documentation 

There is a book describing MINIX is 
great detail, both how to use it and how it 
works inside. The book contains a highly 
annotated copy of the O/S code as an ap- 
pendix (250 pages). This version is 
slightly oul-of-dalc, bul it is still quite 
usable. The bibliographic data on the 
book arc as follows: 



Title: Operating Systems: Design and 

Implementation 

Author: Andrew S. Tancnbaum 

Publisher. Prcnticc-Hall, Englcwood 

Cliffs, NJ 07632 

Date: 1987 

ISBN: 0-13-637406-9 (hardback), 0-13- 

637331-3 (paperback) 

Price: about S40 



Ihc book is currently in the process of 
being translated into German. 

There is also a paperback MINIX 
Reference Manual that is a subset of the 
book. Ii contains only the MINIX- 
specific information, not the general 
background on operating systems that the 
book contains. The reference manual is 
about $35, There is also a package 
containing the disks and the reference 
manual combined going for about S 1 10. 

The Atari disks come with a little booklet 
telling how to boot the system and how it 
differs from MINIX-PC (IBM version). 
Effectively it is a diff listing between 
MINIX-ST and MINIX-PC. It makes no 
attempt to repeat the 500 or so pages on 
MINIX from the book or manual. 

Availability 

MINIX is something of an intermediate 
form between AT&T UNIX and GNU. 
Unlike GNU, MINIX is not public 
domain. Ii is copyrighted by Prcnticc- 
Hall and is being sold by them. The price 
for the Atari disks in the U.S. is $80 + 
shipping (somewhat higher abroad) and 
includes all the source code. 

Unlike AT&T UNIX, the source code is 
readily available, and may be copied for 
bona-fidc cducaiional and research use. 
For example, a professor teaching a 
course on operating systems could legally 
buy Ihc disks and then make copies for 
all his studcnls. A limited amount of 
copying (say, no more than 3 copies per 
original) for friends is allowed. 

If this gets out of hand, and Prcnticc-Hall 
decides that not enough have been sold, 
they will just drop Ihc Atari and have 
future versions be for the IBM only. It is 
the intention that future versions be 
compatible with POSIX. 

In the U.S., the software and books may 
be ordered from most bookstores or 
directly fiom Prcnticc-Hall in NJ. The 
ISBN number for ihc Ataii software is 0- 
13-584392-8. Prentice-Hall's phone 
number is (20 1) 767-5937. 



In Ihc U.K., there arc two dealers. Ihc 
price in the U.K. is 88.50 pounds sterling 
+ VAT 

Prentice-Hall International 
66 Wood Lane End 
Hcmcl Hempstead England 
Telephone: +44 442 23 1555 

SDL Lid 

Unit 10 

Ruxlcy Comer Industrial Estate 

Sidcup Bypass 

Kent England DAM 5SS 



Ihc distributors for Europe arc listed 
below. The European price is $1 10.40. 



In Germany: 

Sieve Stcinkrauf 
Fcldtorwcg 24 
D3406 Bovcndcn I 
FRG 

In Holland: 

Jos de Jong 
Posibus 184 
2IO0ADHccmstcdc 
Holland 

In Scandinavia: 

Frank O" Do ncll 
P.O. Box 88 
1371 Askcr 
Norway 

In Spain and Portugal: 

Deborah Worth 
Appartado Numcro 50672 
Madrid 
Spain 

In Italy: 

Jim Blaho 

Via Manzani 50 

51018 Scandicci 

Florence 

Italy 



66 Micro Journal 



May -89 



In Greece: 

Vassilis Zahos 
Kiiconas 57 
GR 11634 Athens 
Greece 

In Tuikcy: 

Aitilla Gullu 
Millinudafaa Cad 14/7 
Kizilay Ankara 
Turkey 



MEMORY ALLOCATION 

Mike Ditto of Ford Motor Company 
provides the following information to 
assist in the use of memory allocation 
using ihc malloc and free functions. 

One is the most common symptoms of a 
conupt memory free list is some type of 
memory access error occuring at some 
later time. 

This may be caused by one of several 
problems: 



Freeing memory (with frec(» which is 
not currently allocated. This includes 
passing a null ponter to frccO or freeOing 
the same block more than once. 

Overrunning the boundaries of an 
allocated block of memory. This is 
usually in the form of writing off the end 
of your block because you didn't request 
as many bytes as you really need. 

Re-using memory which has already been 
freed or freeing memory which is still in 
use. 

A bug in the malloc package. Pcrsuc this 
option last, as it is the least likely. 



Note that the types of errors that you, the 
programmer, can make, will not result in 
any sortof error until the next time you 
call mallocO- Some versions of frccO 
can also die if the list is corrupt, but 
usually it's the next mallocQ that dies. 



Following is a technique to help track 
down malloc problems: 

extern char *malloc(); 

•define MYMAGIC 0x2a /• Unlikely 
bit pattern */ 

char 'niynialloc (nbytes) 

unsigned nbytes; 

I 

char *ptr - malloc (nbytes+9) ; 

if (!ptr) 

I 

fprintf (stderr, "niynialloc return- 
ing 0\n"); 
return (ptr) ; 

1 

•((unsigned *)ptr> « nbytes; 
ptr +- 8; 

ptr [-1] - MYMAGIC; 
ptrlnbytes] - MYMAGIC; 
fprintf (stderr, "niynialloc return- 
ing Ox%lx\n". (long) ptr); 
return (ptr) ; 

\ 

void niy free (ptr) 

char *ptr; 

1 

unsigned nbytes; 

fprintf (stderr, "niyfree freeing 

Ox%lx\n", (long) ptr ); 

nbytes - *( (unsigned *) (ptr - 

8>); 

if (ptr(-l) !- MYMAGIC | 

ptr(nbytes) !- MYMAGIC) 

fprintf (stderr, v (Freeing cor- 
rupt block !>\n">; 

free (ptr - 8) ; 
I 

• define malloc niynialloc 
•define free rayfree 



Put the above code in a header file and 
^include it if you want to enable the 
"verbose malloc". Redirect stderr to a 
file so you can study the messages. Here 
is an example output: 

niynialloc returning 0x180c 
niynialloc returning 0x182c 



niyfree freeing 0x180c 
niyfree freeing 0x182c (Freeing 
corrupt block ! ) 
niyfree freeing Oxl 80c 
niynialloc returning 0x400c 



As you can see in this example, there 
were two errors found. The second block 
malloced was corrupt when it was freed, 
and the first block was freed twice. Also, 
a potential error is that the third block 
was never freed, although this might be 
ok if the program intentionally exited 
with that memory still allocated. 

Mike has used this technique many times 
to track down some pretty obscure bugs: 
he says that it's not fun but it's often the 
only way. 

Nairn Abdullah of the Department of 
EECS at Northwestern University 
provides the following suggestion on the 
same topic. 

Ask malloc for the size being asked plus 
4 extra bytes. Store the size in an int at 
the beginning of the block, advance the 
pointer by four bytes and return it to ihc 
caller. 

in frceO. back up the pointer by four 
bytes and get the number stored there as 
the size of the block. Give this pointer to 
the real frceO to free the block. 

Nairn feels this approach is very elegant. 
Using it, he was able to find a memory 
leak (malloc without corresponding free) 
that he was looking for. 

Following is some code from Karl Hcucr 
(USENET karl@haddock.isc.com). It 
implements xmallocO, xcallocfj. xfrceO, 
xreallocO and bytcs_allocalcd()- Karl 
gave pci mission to use this code, so you 
may want to put it in your toolbox. 



•define SLOP ( (sizeof (unsigned 
int) + 7) » 4) 

extern void *malloc(); 
extern void 'reallocO; 
extern void "callocO; 
extern void free () ; 



May 69 



68 Micro Journal 



static unsigned int allocsize - 



void *xmalloc(size) 
unsigned int size; 
( 

void *p - molloctSLOP + size) ; 

if (p) 
( 

'(unsigned int *)p - size; 

alloc_size +«• size; 

p - (void *) ((char *)p + SLOP), 

) 

return (p) ; 

I 

void "xca Hoc (nmemb, size) 
unsigned int n/nemb; 
unsigned int size; 

( 

void *p - calloc(SLOP + (size ' 
nmeunb ) , 1 ) ; 

if (p) 

{ 

'(unsigned int *)p - size; 

alloc_size +» size; 

p - (void *) ((char *)p + SLOP), 

) 

return (p) ; 

I 



void xf ree (p) 
void *p; 

1 

if (p) 

( 

p - (void *)((char *)p - SLOP); 
alloc_size -• '(unsigned int *)p; 
free (p) ; 



void *xxealloc(p, newsize) 

void *p; 

unsigned int newsize; 

{ 



if (p) 

( 

p - (void *) ((char *)p - SLOP); 
alloc_size — * (unsigned int *)p; 

) 

p - realloc (p, SLOP + newsize); 

if (p) 

( 

* (unsigned int *)p - newsize; 

alloc_size +- newsize; 

p - (void *) ((chax *)p + SLOP); 

) 

return (p) ; 

» 

unsigned int by tes_al located!) 
( 

return (alloc_size) ; 

) 

/* Now to test it */ 

•include <stdio.h> 

main () 

( 

void *pl; 
void *p2 ; 

pi - xmalloc (10) ; 

p2 - xmalloc (99) ; 

xfree (pi) ; 

printf ("*ld bytes still 

allocated\n", 

(long)bytes_allocated() ) ; 

return (0) ; 

> 



PROGRAM TRACING 
UNDER UNIX V VERSION 4 

Program tracing has been discussed at 
some length in previous chapters. It is a 
powerful technique used to assist in 
debugging and optimizing programs 
under systems supporting it. 

Following is a description of a new 
method of program tracing, as docu- 



mented by Roger A. Faulkner (USENET 
allegralral). 

The tniss(l) system call is based on 
AT&T's proc(4) process filesystcm, 
invented by Tom Killian of Bell Labs 
research and extended and implemented 
for System V by Ron Gomes, with 
significant input from Roger Faulkner. 

tmss(l) can follow children cieated by 
fork(2). It can trace a shell script of 
arbitrary complexity. This includes 
spell(l). which runs an 8-membcr 
pipeline. 

tiuss(l) can tiace an aibitrary numbci of 
existing processes. 

iruss( 1) allows the specification of which 
system calls to trace or exclude. proc(4) 
accepts a bit-mask to specify which 
syscalls to stop on. Untraced syscalls 
incur no overhead with proc(4). 

tiuss(l) does symbolic interpretation of 
syscall arguments, using #define names 
from relevant system header files. 
tiuss(l) has an option to turn off sym- 
bolic interrelation, for unredeemed 
hackers who must see the raw bits to be 
happy. 

tiuss(l) (verbose option) shows the 
contents of structures passed by address 
to specified system calls. The contents 
are shown on output; values passed back 
fiom the opciating system ( like the stat 
structure from stat(2)) are displayed 
properly. 

truss( 1) shows all characters of any 
filename argument. This is related to the 
next item. 

truss( I) always prints the first 16 bytes of 
a string argument in an unambiguous 
format. Also. tniss( 1) accepts an option 
to print the entire contents of the I/O 
buffer for readOs or writeOs on specified 
file descriptors. 

truss(l) optionally prints the aigument 
and environment strings passed in each 
exec(2) system call. 

tmss(l) accepts an option to count system 
calls rather than showing them line-by- 



60 Moo Journal 



May '88 



line. truss(l) only counts those syscalls 
which are being traced; child process 
syscalls may be included in the counts. 

truss(l) reports sleeping system calls as 
"sleeping ..." if ihey remain asleep for 
more than 2 seconds. 

truss( 1 ) reports the receipt of signals. By 
virtue of the proc(4) inteiface, truss(l) 
reports any machine fault which the 
process incurs whet) it is incuired, even if 
the associated signal is blocked. 

truss( 1) accepts options to trace or 
exclude specified signals or machine 
faults. prcc(4) accepts a bit-mask of 
signals or faults to stop upon. 

When truss(l) encounters an exec(2) of a 
set-uid orset-gid object (a process- 
tracing security violation), proc(4) forces 
it to give up and allow the process to con- 
tinue unmolested. The proc(4) interface 
does a pioper job of enforcing security 
without changing process behavior. If 
uuss(l) is run as super-user, set-uid and 
set-gid processes can be traced with no 
problem. 

ITie proc(4) mechanism is independent of 
the signal mechanism and does not 
inteifere with its actions. A program 
using proc(4) can choose to t/ace signals 
or nob a signal is just one of the events a 
process can stop on; others are machine 
faults and syscalls. A process can be 
stopped without sending SIGSTOP. If 
the tracing process is killed, the traced 
process continues unaffected. 

C PROBLEMS 

Lloyd Zusman of Master Byte Software 
poses the problem below. 

I'm looking for the fastest way to gel the 
lowest power of two that is greater than 
or equal to a number. 

Following is my first attempt: 



unsigned int al (size) 
unsigned int size; 



unsigned int try - 1; 
while (try 44 (size > try)) 
try «- 1; 
return (try) ; 



This works and returns if there is no 
power of 2 greater than the argument. 
But is there something thai is faster? 
How about something involving a series 
of boolean operations? 

Paul Raymond McMullin of Johns 
Hopkins University Applied Physics 
Laboratory makes the comments below. 

Fast takes a strange meaning here... If 
you expect most of your inputs to this 
function to be "near" zero, the above 
function will probably be pretty good, 
taking 4 or five instructions (in the loop) 
per power of two contained in the 
answer. If your inputs to the function are 
distributed unifoimly between and 
2**31 (assuming a thirty-two bit word), 
you might ny something like the follow- 
ing: 



unsigned int al (size) 
unsigned int size; 



unsigned int try - 

if (size > 1«16) 
( 

size - size » 16; 
try - try « 16; 

) 

if (size > 1«8) 

( 

size - size » 8; 
try - try « 8; 

) 

if (size > 1«4) 

( 

size - size » 4; 
try - try « 4; 



1 

if (size > 1«2) 

( 

size - size » 2; 
tiy - try « 2; 

t 

if (size > 1«1) 

i 

size - size » 1; 
try - try « 1; 

) 

if (size) 

try - try « 1; 

return try; 

t 



Notice that I've assumed that your 
compiler was smart enough to "constant 
fold" the shifted ones in the comparisons 
— for a stupid compiler you may have to 
do this by replacing them yourself. Also, 
notice that if your int sizes are longer 
than 32 bits you can either add aditional 
cascades (e.g. "if (size > 1«32)" etc, or 
change the first cascade into a while loop 
(which will make it portable to*any* 
length integers, masking off 16 bits at a 
time for 'really big* numbers. 

I've tested the program for the examples 
you gave above, but I didn't tiy MAX- 
INT (or 2** 31 either).. I suspect that it'll 
return for MAXINT like the other sug- 
gested algorithm, but haven't bothered to 
tiy it... I don't fool with unsigned 
numbers that much. 

The program would be more clearly 
defined for the MAXINT case if you 
were asking for the power of two that 
contains the argument: you would 
initialize try to zero, and change all of the 
try s try « x statements to try += x 
statements. 

It seems to me that what you should want 
for al(l) is I , not two! (You seem to have 
forgotten that 2**0 is 1.) Fixing this case 
doesn't appear trivial at First, I'll leave it 
as an exercise for the reader... 



10 



May 69 



68 Micro Journal 



I'm not sure why you defined aJ(0) lo 
return 1 when al(2) returns 2; it seems lo 
me that al(0) should be 0! If you change 
your mind, you'll have to handle the 
MAXINT case better, and add "else 
return 0;" as a completion for the "if 
(size) uy = lry«i" statement. 

looking back over my code, it'll proba- 
bly take 2 instructions per comparison 
that fails (e.g. small numbers falling 
through the first few cascades), and 4 
instructions for each cascade that passes 
(two for the comparisons and two shifts), 
so for all but the cases wheic size < 32 
my code will probably beat the first 
suggested implementation for speed. 

Brian Beuning of AT&T makes the 
suggestions below. 

Many bit problems can be solved by 
having an array of answers for a smaller 
number of bits and then breaking down 
the problem so it can be answered by an 
airay lookup. With four range checks 
you can handle 32-bit input numbers, as 
follows: 



shoit uit bit8(256j - { 1, l, 2, 
4, .... 256 |; 

unsigned int al (x) 
unsigned int x; 
< 

return ( (x < 0x10000) ? 

((x < 0x100) ? bit8[xj : 
(bit8[x » 8) « 8)) : 
( (x < 0x1000000) ? 
(bit8[x » 16) « 16) : 
(bit8[x » 241 « 24))) ; 



1 



With a different bil[] airay, this same 
approach works for counting the number 
of bits set in a word. 



the fastest on my system, but for now, I 
think 1 will use the following one that 
several people suggested: 



unsigned int al (size) 
unsigned int size; 
I 

if (size) 



size 


- 


—size » 1 


size 


- 


size 


» 2; 


size 


- 


size 


» 4; 


size 


- 


size 


» 8; 


size 


- 


size 


» 16 


1 








returr 




(size 


+ 1); 


1 









John Antypas (USENET 
jancypas@ ucrmath.UUCP) poses the 
problem below. 

In a graphics application we're wiiting at 
work, we have sevcial functions for 
drawing lines, circles etc. We'd like to 
set up something like a vector table. If the 
vector table has a NULL in a spot, then 
the interpreter will use its internal 
routines instead of faster device-specific 
code. 

As an example: 



vectors [ 1 
i 




dev 


line() 




dev 


box() , 




dev 


circle 





dev 


arc(). 




dev 


text () 





This says we have device specific code 
for all live functions. Yet when I ay to 
copy function addresses, the compiler 
complains. How do 1 get the address of a 
function and put it into an array for 
calling later? 

The reader may wish to consider the 
problem posed in the current section 
before reading the next section. 



EXAMPLE C PROGRAM 

Steven Wcintraub at Motorola in Austin 
Texas ((512)440-3023) provides the 
following example program, which 
illustrates a use of function arrays. 



•define COWAN DLI ST 

♦ define COWAND_ADD 

♦ define COrWAND_QUIT 
Idefine COMAND HELP 
Idefine COWAND_SHOW 

char «buf fer_place; 
char buffer [150] ; 

struct corrmand_info 
( 

char "name; 

short significant; 

int number; 

void ('function) () ; 

I; 

void co»ifT<and_add () ; 

void cornmand_help ( ) ; 

void comnand_list () ; 

void co»m<and_show() ; 

struct corrmand_info 
corrtnand table [] - 



Lloyd Zusman of Master Byte Software 
then answered his own question. 

Some day I'll try to benchmark all the 
algorithms and see which one is 'really* 



68 Micro Journal 



May 89 



11 



J -add". 


1, 


CCMAND ADD, 


cotitnan d_a<Jd ) , 


("help". 


1, 


CCMOND KELP. 


command help). 


("list". 


1, 


CXMOND LIST, 


comma/\d_list) , 


("quit". 


1, 


CXMWTO QUIT. 


NULL), 


("show". 


1, 


COMAND SHOW, 


command show) , 


(NULL, 


0, 


0, 


NULL) 



); 



void run ccronands () 

i 

char more; 

int linelength; 

struct command info •thiscomrand; 

more - YES; 
while (more) 
< 

print fCComnand : "); 

linelength - readline (stdin, YES) ; 

if (linelength) 

( 

this_coRmand - get_corrmand(command_table) ; 
if (this_coimyarvd->function) 

(*this_command->function) (); 

else 

if (this_co«mand->numfc»r — COfWANDQUIT) 

more ■ NO; 

else 

( 

printf ("Unknown command. \n") ; 
printf ("Type Help for help\n~); 

I 
1 

1 

return; 

1 

struct e©mmand_info *get_command(command_table) 

struct command_info *command_table; 

< 

int count; 
char *this_c; 
char good; 
char more; 
char sorasore; 



struct eommand_info *this_command; 

this_command - command_table; 

more - YES; 

while (this_command->name 64 more) 

( 

count - 0; 

this_c - this_command->name; 

buffer_place - buffer; 

good - YES; 

somencre - YES; 

while (good a somaioie) 

( 

if (*this_c 44 «buffer_place 44 

*buffer_place !«• ' ' > 

I 

if (*this_c — *buffer_place) 
( 

count++; 

thia_c++; 

buffer_place++; 

) 
else 

good - NO; 

» 
else 

if («buf fer_place 44 *buf fer_place !- ' ') 

good - NO; 
else 

somemore - NO; 

I 

if (count >- this_co(imand->significant 44 good) 

more - NO; 

else 

t h i s_comma nd+ + ; 

I 

return (this_cooinand) ; 

I 



FOR THOSE WH 




68 MICRO 



JOURNAL 



™ 



12 



May '09 



68 Mefo Journal 




asicatty OS-9 

Dedicated to the serious OS-9 user. 

The fastest growing users group world-wide! 

6809 - 68020 



A Tutorial Series 

By: Ron Voigts 

2024 Baldwin Court 
Glendale Heights, 1L 60139 



INPUT/OUTPUT WITH WINDOWS 



I thought this month we would get into talking about 
windows. The Color Computer using OS-9 Level II 
makes a fine example of windows. It is best to go back 
a ways and study Level I OS-9 on the Coco. It will 
reveal how the Coco screen has developed and why 
things are the way they are. 

Level I OS-9, Version 1 .00, had a 600 byte screen fixed 
in RAM. The screen was 32 X 16 in size. It displayed 
only uppercase characters using reverse video for the 
lowercase. I really do not know anyone who stuck with 
it. A number of outside developers came up with 
alternates. Some were O-PAK, a graphics screen; 
WordPak, a plug in module that delivered a 80 X 24 
screen; G05 1 , another graphics type screen from S tylo; 
and XSCREEN, yet another graphic type screen. They 
all did one thing — attempt to overcome the little green 
screen. 

The internal structure was not much different from 
standard OS-9. NoiTnally, the driver and descriptor 
structure for standard OS-9 are: 



This diagram shows their relationship. Here the ACIA 
Driver is operating on /TERM, /Tl and/T2. There can 
be more, but this sufficient to display the workings. It 
is important to note that the driver is merely a I/O port. 
The terminal is external to the computer. 

The Color Computer brought about an interesting 
change. The keyboard and screen wene all part of the 
same computer. Actually the screen was your TV or 
monitor, but the VDG was from the computer and not 
really a concern of OS-9. For OS-9 Level I on the Color 
Computer we have: 



I 

/TEEM 



I OMAN 

1 
1 
CCIO 

1 
1 


1 1 
1 1 

/Tl /T2 



IOKAN 

I 
I 
ACIA Driver 
I 
I 



I 
/TERM 



I 



I 



/Tl /T2 



This is not a big different except that we have a clearly 
defined module that performs the keyboard and screen 
functions. The screen was located somewhere in 
memory mapped by the SAM (Synchronous Address 
Multiplexor). Later a new version 1 came up that 
allowed some extras such as a call to return the screen 
memory location was added, but the scheme was basi- 
cally the same. 



SB Mkro Journal 



May 80 



13 



Eventually Version 2.00 came along it gave a new 
solution to the Color Computer input/output. It divided 
the function of CCIO into 3 parts. CCIO still existed to 
handle key board things, but output was allocated to 
modules, C032 and CO80 which handle screen output. 
And graphics was handled through another module, 
GRFO. Separating graphics meant a memory savings 
when graphics was not being used. 



Here we see a similar configuration, but a little more 
elaborate. Grflnt is the Graphics Interface. It is handles 
window codes. Windlnt is the window interface and it 
handles high-level windowing things, like pull down 
menues, borders, and scroll bars. It is available with the 
MultiView package fiom Radio Shack. GrfDrf is the 
text/graphics driver. VDGlnt creates an environment 
like Level 1 , Version 2.0. 



IOMM) 



CCIO 
I 



C032 
I 



GRFO 
I 



/TERM 



I 
/Tl 



/T2 



This diagram gives a basic idea of how things are 
arranged. CO80 can be substituted for C032 in this 
illustration. Important to note here is that things are 
becoming more flexible. 

With OS-9 Level II, the design is very similar with some 
complications thrown in for good measure. In Level II 
a new screen system exists due to the addition of the 
GIME chip (and removable of the SAM). Now the old 
type screens are available as well as the new ones. The 
following diagrams illustrates the new arrangement. 

IOMAN 



I 



CC3IO 



These diagrams may not totally give the real pictuie. 
For example, keyboard I/O is done through CC3IO. 
Output however is handled by one of the Graphics 
interface. That is enough about the system. Now let's 
talk about windows. 



The process to create a window is simple. Assuming 
that /W7 is in memory the following sequence will 
create a shell running in /W7 

INIZ/W7 
SHELL I=/W7 & 

This sequence initialize /W7 and creates an shell run- 
ning in it. The I option of the SHELL is something new 
and means it is an immortal process. It can be only 
terminated from the process. To move to the window, 
type the <CLEAR> key. A <SHIFI'xCLEAR> will 
move back to the previous window. Once in the 
window anything can normally be done. One thing that 
I like is that when running multiple windows the proc- 
ess in each continues. Many systems do not work this 
way including some big ones. 

Here is another interesting way to start a SHELL in / 
W7. From another window type: 



i 



I 

Grflnt 



I 
Windlnt 
I 
GrfDrf — 
I 
I 



I 



I 
/TERM (WO) /Tl /T2 



i 



I 

VDGlnt 

I 

! 
I 
I 
I 

I 
I 
/TERM ( Term VDG ) 



SHELL <>»/W7 & 

I found this one can be terminated from the window that 
starts it. 

It you have started an immortal process, it can only be 
terminated from it window. Enter: 



EX 



14 



May 89 



68 Micro Journal 



and the SHELL will terminate itself. Move to another 
window with the <CLEAR> key and enter: 

DEINIZ W7 

The window will go away. 

A device window is one which can run some process. 
The previous examples were device window. Over a 
device window can exist overlay windows. An overlay 
window is used for displaying computer dialog. The 
big difference is a SHELL cannot be created in a 
overlay window, but it can be run in it. This month's 
program demonstrates this. 

Listing 1 is a program called Pause. It prints a message 
to the screen and then waits for a key press to continue. 
This program is useful with procedure files. During the 
pause the user can do something like change a disk, or 
read a message. The following example changes the 
default foreground and background colors and prints 
the message in a screen centered window. 

pause -f=2 -b=4 "Insert Disk B Into Drive /DO" 

This causes the message to appear as: 

Insert Disk B Into Drive /DO 
Type Any Key To Continue! 

Only the message will be centered in a window. If the 
-W option is used, the message can be listed to a 
standard terminal. It will appear pretty much as above. 

The program Pause does have some things that can be 
improved. It does not know what type of screen it is in. 
GetStt can be used to get it and then the program can be 
a little smarter about what to size window to print and 
if it should use a window. Also, it echoes the key 
pressed to the screen which may not be desired. Using 
GetStt and SetStt to turn of and on keyboard echo would 
solve this. I leave these ideas to you. As written. Pause 
will work on a 24 x 80 screen. 



I have some graphic calls in program to open and close 
a window, and turn of and on the cursor. The program 
can be linked to the CGFX.L available from Radio 
Shack. To compile the program use: 

ecl getopt.c -r 
ecl pause.c -r 
cc 1 pause.r getopt.r -l=/dd/lib/cgfx.l -f=pause 

Let me tell you something interesting about CGFX.L. I 
received the library with my Development System, but 
their was no documentation. The documentation was in 
the Multi- View System, but it did not include the actual 
software. This strikes me as an unusual way to distrib- 
ute software — splitting between two different pack- 
ages. 

Listing 2 is contains some C routines that basically do 
the same thing. They have similar calling format as the 
ones from CGFX.L. Include is owset(), owend(), 
curon() and curoff(). These will supply what is neces- 
sary to run PAUSE. To compile with the Listing 2 
software use: 

cc 1 getopt.c -r 

ecl pauscc -r 

ecl cgfx.c -r 

ecl getopt.r pause.r cgfx.r -f=pause 

I'll leave you with these listings. I have not commented 
on getopt.c which was from a previous issue of 68' 
Micro Journal. Getopt.c is available in a 3 volume set 
covering the listings of this column from the beginning 
to April 1988. The disks are $9.95 each or all three for 
$24.95. They can be ordered from South East Media at 
(615) 842-4600. I soon hope to have available the forth 
volume covering May 1988 to April 1989. 

That's it for now. See ya soon. 



68 Micro Journal 



May 89 



16 



e 



s 

£ 



File: pause. c 
Date: 19 FEB 89 
Author: Ron Voigts 
Compile: 0S9: make 



Function: 

1. paused : prints a help massage in 

a window and waits for key to be 

pressed. 

provides help for paused. 
returns key pressed, 
prints spaces. 



2. helpd 

3 . inkey ( ) 

4. spaced 



Verison 1. 
19 FEB 69 
Original 



RDV 



LISTING 

0000 /* 

0001 

0002 

0003 

0004 

0005 

0006 

0007 

0006 

0009 

0010 

0011 

0012 

0013 

0014 

0015 

0016 

0017 

001B 

0019 

0020 

0021 

0022 

0023 ***** 

0024 

0025 (-include 

0026 

0027 (define TRUE 1 

002B (define FALSE 

0029 (define STDCCT 1 

0030 

0031 int win_flag; 

0032 int f_ground; 

0033 int b_ground; 

0034 char ctl); 

0035 char *opt; 

0036 char *list-"?wf-b-"; 
0037 

0036 rain( argc, argv ) 

0039 int argc; 

0040 char **argv; 

0041 { 
0042 

0043 /* Set up default values 



"getopt.h" 



0044 

0045 

0046 

0047 

0048 /* 

0049 

0050 

0051 

0052 

0053 

0054 

0055 

0056 

0057 

0056 

0059 

0060 

0061 

0062 

0063 

0064 

0065 

0066 

0067 

0068 /* 

0069 

0070 

0071 /* 

0072 

0073 

0074 /* 

0075 

0076 

0077 

0078 

0079 

0080 

0081 /* 

0082 

0083 

0084 /* 

0085 

0086 

0087 /* 

0088 



win_flacj-tRUE; 
f_ground-0; 
b_g round- 1 ; 

Get options */ 
optn-1; 

while! (opt-getopt ( argc, argv, list )) !- 0) f 
if ( opterr <~ -1 ) 

printf ("Illegal option %c\n", *opt ) ; 
else ( 

if (*opt='?') 

helpd; 
if ( toupper( *opt ) — X W J 

win_flag=*FALSE; 

if ( toupper( *opt ) — % F' ' 

f_ground-atoi ( optarg ) ; 

if ( toupper( *opt ) — *B' ) 

b ground-atoi ( optarg ) ; 



1 



) 



if (win_flag) ( 

Create an overlay window */ 

owset (STDOOT/ 1, 5, 10, 70, 4, f_ground, b_ground ), 

Turn cursor off */ 
curoff( STDOOT ); 

Print the option */ 
printf ( M \n"); 

space! (70-strlen (argv [optn] )>/2 ); 
printf ("*s\n", argv{optn) ) ; 
space ( 25 ) ; 
printf (" Type Any Key To Continue ! \n" ) ; 

Wait for keyboard response */ 
inkey () ; 

Turn cursor on */ 
curon ( STDOOT ) ; 

End the overlay window */ 
owend ( STDOOT > ; 



s 



s 



0069 
0090 
0091 
0092 
0093 
0094 
0095 
0096 
0097 
0096 
0099 
0100 
0101 
0102 
0103 
0104 
01 OS 
0106 
0107 
0106 
0109 
0110 
0111 
0112 
0113 
0114 
0115 
0116 
0117 
0116 
0119 
0120 
0121 
0122 
0123 
0124 
0125 
0126 
0127 
0126 
0129 
0130 
0131 



) else { 

print f("*s\n", argv[optn] ); 

printf (~rype Any Key To Continue ! \n~) , 

inkey ( ) ; 

) 



/* Print n Spaces */ 
space ( n ) 
int n; 
{ 

while ( it- ) 

printfT *); 
J 

/* Return key pressed */ 
int inkey ( ) 

I 

char c[l] ; 

while ( getstat( 1, ) =- -1 ) 

read( 0, c, 1 ); 
return ( c ) ; 



I 



/* Print help information */ 

help() 

I 

printf ("Pause [-f-n] [-b-m] [-w] \"MessageV\n") ; 

printf (~ f, changes foreground color to n (default 0) \n") j 

printf (" b, changes background color to m (default 1) \n") , 

printf (" w, turns off window\n") ; 

exit(0) ; 
} 



********************* 

File: ogfx.c 
By: Ron Voigts 
Date: 29 FEB 89 

********************* 



Fucntion: 
1 . owset ( ) 
owendO 
curon ( ) 
coroff () 



2. 

3. 
4. 



open an overlay window 
close window 
cursor on 
cursor off 

********** 



LISTING 2 

0000 

0001 

0002 

0003 

0004 

0005 

0006 

0007 

0006 

0009 

0010 

0011 

0012 

0013 

0014 

0015 

0016 

0017 

0016 

0019 

0020 

0021 

0022 

0023 

0024 

0025 

0026 

0027 

0026 

0029 owset (path, svs,cpx,cpy, szx, szy,fpm,bprn) 

0030 int path, svs,cpx, cpy, szx, szy, fprn.bpm; 

0031 ( 
0032 
0033 
0034 
0035 
0036 
0037 
0036 
0039 
0040 
0041 
0042 



Version 1.0 RDV 
19 FEB 89 
Original 

********************* */ 

Creates an overlay window of 
size szx x szy starting at position 
cpx, cpy. Foreground and background 
colors are fpm and bprn. If svs is 0, 
area under window is not save, if it is 
1 it is saved. 



Create buffer for 'write' string */ 
char b[9]; 

Initialize the buffer */ 
b[0]-0XlB; 
b[l)-0X22; 
b[2]-svs; 
b[3]"=cpx; 
b[4]-cpy; 
b [51 -szx; 



8 



S 

I 



0043 
0044 
0045 
0046 
0047 
0048 
0049 
0050 
0051 
0052 
0053 
0054 
0055 
0056 
0057 
0058 
0059 
0060 
0061 
0062 
0063 
0064 
0065 
0066 
0067 
0068 
0069 
0070 
0071 
0072 
0073 
0074 
0075 
0076 
0077 
0078 
0079 
0080 
0081 
0082 
0083 
0084 
0085 
0086 
0087 



b(6J-szy; 

b[7J-bpm; 

blSJ-fpm; 

/* Write the buffer «/ 

if ( write ( path, b , 9 ) — -1 ) 
return ( -1 ) ; 

return ( > ; 



/* Closes an existing window */ 
owend( path ) 
int path; 

I 

/* Create buffer for 'write' string */ 
char b[2]; 

/* Initialize buffer «/ 
bl0]-0Xlb; 
b[ 1J-0X23; 

/* Write the buffer «/ 

if ( write ( path, b, 2 ) — -1 ) 
return ( -1 ) ; 

return ( ) ; 



/* Turns cursor on */ 
curon( path ) 
int path; 
I 

/* Create buffer for 'write' string */ 
char b[2]; 

/* Initialize buffer */ 
b(0]-OX05; 
b[l]-0X21; 



0088 
0089 
0090 
0091 
0092 
0093 
0094 
0095 
0096 
0097 
0098 
0099 
0100 
0101 
0102 
0103 
0104 
0105 
0106 
0107 
0108 
0109 
0110 
0111 
0112 
0113 



/* Write the buffer */ 

if ( write ( path, b, 2 > «« -1 ) 
return ( -1 > ; 

return ( ) ; 



/* Turns cursor off */ 
curof f ( path ) 
int path; 
I 

/* Create "write' buffer */ 
char b[2]; 

/* Initialize buffer */ 
b[0]-OX05; 
b[l]-0X20; 

/* Write the buffer */ 

if ( write ( path, b. 2 ) 1 ) 

return ( -1 ) ; 

return ( ) ; 



Nairn : GETOPT 
By: Ron Voigts 
Date: 25-KRY-87 



LISTING 3 

0000 /* *************************** 

0001 

0002 

0003 

0004 

0005 

0006 

0007 

0008 

0009 

0010 

0011 

0012 

0013 

0014 

0015 

0016 



Function : 

This function examines the argument list 
returning a pointer to the option and 
its argument. A null string is pointed 
to if the option has now argument. 

*************************** 
Version 1 . 00 



s 
8 



e 



0017 
0018 
0019 
0020 
0021 
0022 
0023 
0024 
0025 
0026 
0027 
0028 
0029 
0030 
0031 
0032 
0033 
0034 
0035 
0036 
0037 
0038 
0039 
0040 
0041 
0042 
0043 
0044 
0045 
0046 
0047 
0048 
0049 
0050 
0051 
0052 
0053 
0054 
0055 
0056 
0057 
0058 



Original. 



♦define TRUE 1 
♦define FAISE 



char *optarg; 
int optn; 
int opterr; 



/* Option argument */ 
/• Next option */ 
/« Error status */ 



char *getopt ( c, v, optlist ) 

int c; /* argument count */ 

char «*v; /* argument vector •/ 

char "optlist; /* option list */ 



I 



int isoption ; 
int hasarg ; 
register int i; 
char "opt; 
char »t; 



/* option flag */ 

/* option argument flag 

/* useful index */ 

/* option pointer */ 

/« argument pointer »/ 



static char *null-'\0'; /« null string */ 

/* Set up the null string for 'optarg' */ 
optarg - null; 

/* Set up the error return status */ 
opterr - 0; /* No errors */ 

/« Set up the argument */ 
t-v[optnl ; 

/* We are at the end of the argument list */ 

if ( (optn— c) || («t!-'-') || ( »t— '-' 44 *<t+l) 
return ( ) ; 

/* We can set the option •/ 
opt - t+1; 

/* Check if we have an option with an argument */ 
isoption - FAISE; 



— *\0- ) ) 



hasarg - FAISE; 

for ( i-0; Kstrlen (optlist) ; i++ ) 

if { toupper(* (t+1) >==toupper(optlist [ii ) ) I 
isoption - TRUE; 
if ( optlist[i+l]— '-') 
hasarg - TRUE; 
» 

If this is not an option then return with error */ 
if ( ! isoption ) 

opterr— 1; /* illegal option */ 

Now we check and set up the argument */ 
if ( hasarg ) ( 

if (*(t+2> — % \0') 
if ( optn < c-1 ) 

optarg - v[++optn); 
else 

opterr— 2; /* Missing option argument */ 
else 

optarg - t+2; 
if ( «optarg— '-' ) 
optarg++; 
) else 

if ( * (t+2) !- % \0' ) 

opterr— 3; /* Argument not expected •/ 

Now we have an argument and option */ 
optn++; /* Adjust the next pointer •/ 
return ( opt ); /* Return the option pointer */ 



0059 

0060 

0061 

0062 

0063 

0064 

0065 

0066 

0067 /< 

0068 

0069 

0070 

0071 /< 

0072 

0073 

0074 

0075 

0076 

0077 

0078 

0079 

0080 

0081 

0082 

0083 

0084 

0085 

0086 /< 

0087 

0088 

0089 

0090 } 

0091 



LISTING 4 

0000 extern char "optarg; /* Option argument */ 

0001 extern int optn; /* Next option «/ 

0002 extern opterr; /• Error Status */ 
0003 



FOR THOSE WH 



tlSEED TO KNOW 



68 MICRO 



JOURNAL 



TM 



COME ON IN 
THE WATER'S FINE 

PLUS FIVE 

1968 Innerbclt Business Center Diivc 

St. Louis. Missouri 631 14 

314/426-3900 

1.0 INTRODUCTION TO PLUS FIVE 

Plus-Five specializes in MUMPS and has done so for seven years. MUMPS was originally implemented as an 
operating system, database, and programming language environment. In 1982, Plus Five separated the operating 
system portion from the oiiginal implementation. The result was a very powerful programming language and database 
tool, which is capable of being used on another operating system (originally UNIX). In the past seven years. Plus Five 
has ported MUMPS to over 50 different manufacturers' platforms, from an Amdahl 5870 to PC ATs. Plus Five's 
MUMPS is a full implementation of the 1984 ANSI Standard, meets or exceeds the Federal Information Processing 
Standard (F1PS). and has several additional powerful extensions. MUMPS has become so well established that OEMs 
arc frequently icquired to have MUMPS available on their systems in order to respond to governmental requests for 
pioposals (RFPs). At least one OEM was unable to deliver 100 million dollars worth of hardware until MUMPS was 
made available on it. 

When Plus Five was first approached about porting MUMPS to OS-9, we had plenty of icasons to hesitate. After 
all. our forte was UNIX, not OS-9, and we had little experience with real-time operating systems. And, MUMPS is 
not your average weekend project - we're talking heavy duty hcic, over 64,000 lines of code! However, the concept 
was too exciting and the challenge too tempting - we could not resist. Imagine all the existing MUMPS applications' 
and the power and programming efficiency of MUMPS combined with the graphics and real-time capabilities of OS-9. 

We obtained some inexpensive OS-9 hardware and just son of dove in. Well, we want to say thanks to Microw- 
are 2 and to Ullrascicnce'. Microwarc's excellent C, powerful OS-9 C source debugger, and experienced support team 
made the programming task a pleasure. Ultrascicnce's rugged and nicely implemented OS-9 coprocessor for IBM 
personal computers and clones, the PC68K1/MEMIOX, provided us with affordable machines for development and 
promotion. The PC68K.1 permits us to run OS-9 and DOS concurrently and to move data between the two operating 
systems. 

1 MUMPS SOFrWARE SOURCES., published by the MUMPS Users' Group. 4321 Hanwick Rd., Suite 510, Col- 
lege Park, MD 20740, Phone: 301/779-6555 

2 Microwarc System Corporation, 1900 N.W. 144th Street. Dcs Moines, 1A 50322, Phone: 515/224-1929 

3 Gibbs Laboratories, Inc., Ullrascicnce Division, 1824 Wilmcttc Ave.. Wilmette. IL 60091, Phone: 312/256-0080 



FYI: 

68 Micro Journal excerpted the following introduction from EXPLORE THE WORLD OF MUMPS, published by the 
MUMPS Users' Group. 4321 Hanwick Rd.. Suite 510, College Park. Maryland 20740. 

20 May '89 68 Micro Journal 



WHAT IS MUMPS? 

MUMPS is a multi-purpose, interpreted or compiled, high-level programming language designed for interactive 
data management applications. Its stiing-handling features and hierarchically structured database suit it for medical, 
business and woid-processing applications where large, complex files must be designed, constructed and maintained. 

MUMPS was developed at Massachusetts General Hospital in Boston in 1966. The MUMPS acronym stands for 
Massachusetts General Hospital Utility Multi-Piogiamming System. The language is used in medical, commercial, 
industrial, and academic applications worldwide, in addition to a growing number of personal computer configura- 
tions. 

MUMPS is an American National Standard Language, which means that all implementations of Standard MUMPS 
use the same commands, functions, and operators. This enables programs to be transported between diffeient comput- 
ers running standard MUMPS. Users are not restricted to a single hardware or software vendor. If a system giows, ii 
can be easily moved to a larger computer. This also means users can share applications software. 

MUMPS is a FEDERAL INFORMATION PROCESSING STANDARD (FIPS). The Institute for Computer 
Science and Technology develops Federal Information Processing Standards (FIPS) for programming languages when 
there are significant benefits for Federal users, and when technically sound specifications exist. Federal depaitments 
and agencies may select MUMPS as their language of choice. 

WHO IS USING MUMPS? 

MUMPS is being used for virtually every type of health service, scientific, technological and corporate data proc- 
essing system. It is most often used for on-line, interactive applications where immediate data retrieval and prompt 
response are important. Medical and business organizations across the globe use MUMPS — organizations such as the 
Smithsonian Institution, the Department of Defense for its Composite Health Care System, the Veterans Administra- 
tion Hospitals, the U.S. Navy Occupational Health Program, trust banking institutions, a major American airline 
company, credit unions, universities, and the Swiss government 

WHY SHOULD YOU CONSIDER MUMPS? 

MUMPS is simple to learn and powerful to use. It gives the novice programmer the tools to develop professional 
programming applications. Experienced programmers find that the language facilitates the solving of complex data 
management problems. Its simple structure and interactive nature help the programmer to create and de-bug programs 
quickly 

Studies show that MUMPS significantly enhances programmer productivity over other languages. MUMPS pro- 
grammers spend only 8-12% as much time for system development. In addition, a typical MUMPS program requires 
only 10% as many lines of code as other languages. 

Another important attribute is program portability. Users can move MUMPS programs between different com- 
puter hardware and MUMPS implementations. 

2.0 ULTRASCIENCE PC68K1 AND MEMIOX 

The OS-9 PC68K1 coprocessor board is a full length board that plugs into a standard PC/XT/ AT style bus. It is 
available in 68000 or 68010 versions which run at 10 or 12.5 MHz. 1 Mb of zero wail-state DRAM, 2 vectored serial 
ports (DB9), a parallel port, battery backed up time-date chip, Professional OS-9 and extensive diagnostic utilities and 
device drivers are standard. 8 K of battery backed up SRAM is optional. The MEMIOX expansion board couples 
directly to the PC68K1, as a daughter board, by means of a flexible cable. It provides another 1 Mb of zero wait-state 
DRAM and up to 10 more vectored serial ports (RJ4S). 



68 Mcro Journal May '89 21 



Plus Five icqucstcd the convenient Ultrascicncc "Click" cables because we wanted to get staitcd with the absolute 
minimum of cffoit. The cables use 8 conductor, telephone-style, RJ4S terminated cable, which is fully shielded. DB9 
and DB2S adapter-connectors arc available in both sexes to provide null modem, terminal, printer, and COM port 
connections. "Click" connectors made our cabling a SNAP and we highly recommend them for any type of computer 
installation. Within minutes our first PC68KI was installed, connected to a number of terminals, and ready for power- 
up. 

With a flick of the power switch, the PC proceeded to boot and ihc PC68K1 came alive, issuing an impressive 
self-test message to the terminal attached to poit "0". We followed the simple and straight-forward installation 
instructions provided with the PC68K1 DOS diskette which loaded the necessary utilities onto the DOS partition. We 
then loaded the OS-9 software, as instructed, and in a few seconds were welcomed to the world of OS-9. 

The PC68K1 DOS/OS-9 software makes use of a IK, memory mapped, dual ported DRAM which buffer-couples 
the 68K bus of the PC68K 1 and the PClbus. By means of this high-speed intcifacc, OS-9 can share the hardware and 
software icsourccs of the PCbus. The monitor (monochrome, CGA, EGA. or EVGA) can be hot-keyed back and forth 
between OS-9 and DOS (screens arc not lost), and OS-9 utilizes the PCbus diskette (DSDD or DSHD 5-1/4" and 3-1/ 
2"). hard disk (ST506 or SCSI), and tape (SCSI) drives. OS-9 can also access the PCbus COM poit and printer pons as 
standard OS-9 devices. The drivers and programs which make all this possible are provided standard with the 
PC68K1. 

Deciding how to partition hard disk capacity between OS-9 and DOS took some deliberation; not because it was 
especially difficult, but because the options were plentiful. OS-9 partitions can be installed on up to 4 drives, includ- 
ing the DOS boot drive, and any of these drives can be the OS-9 boot partition. Ultrascicncc has automated the instal- 
lation of OS-9 with a command file which takes over once the user has created the required "OTHER/122" type 
paitition with DOS hard disk partitioning software. It appears that a variety of partitioning software will perform this 
function, but we used the recommended Disk Manager product from Ontrack4 (piovidcd by Ultrascicncc) and encoun- 
tered no difficulty . 

The OS-9 driver and related software for the PCbus monitor permits Ihc monitor to function as a Link Model 125 
non-embedded terminal with special color features. Though we encountered some bugs in the first release of ihc 
driver, the current version seems to be bug free. The OS-9 driver and related software for ihc PCbus kcyboaid cur- 
rently supports about 90 combinations of ALT, CrRL, SHIFf, and NO SHIFr with function keys and normal keys to 
serve as special purpose function keys. The key combinations can be programmed, and lead-in and trailer character 
can be changed or suppressed. Altering the output of functionl keys to suit a scries of screens or applications has been 
automated. 

Plus Five has made good use of PC68K 1 OS-9 programs for moving data back and forth between OS-9 and DOS 
disks. At this time. Ultrascicnce does not support wildcarding for this purpose. It would be a nice feature, but it is 
also an understandably complex task, which might cause serious problems if it were not implemented flawlessly. 
Software for spawning DOS programs from OS-9, and for using Ihc IK dual ported DRAM for passing data between 
DOS and OS-9 programs, is also provided. We have yet to explore the potential of this latter resource, which is 
certainly of importance to process control developers. 

The standard PC68KI software also comes with an impressive array of utilities, designed for diagnosing and 
servicing boards in the field. In most cases, diagnosis is chip specific. We have not had any need to repair our boards, 
but it appears that the products would be very easy to support, especially since all the active components arc socketed 
in quality gold sockets. 

Ontrack Computer Systems, Inc., 6200 Bury Drive, Eden Praric, MN 55346 

Link Technolgics, Inc. (A Wyse company), 47339 Warm Springs Blvd.. 
Fremont. CA 94539 



22 May '89 68 Micro Journal 



3.0 MICROWARE OS-9 

At some point in the future, Plus Five hopes lo put together an article, detailing differences between UNIX and 
OS-9; that is, if someone has not already written one). The differences are not trivial; however, in our case, they were 
certainly manageable. But, creating software is usually easier than debugging it; and in this regard, we would be at it 
still were Microwatt's fantastic C debugger not available. The debugger allowed us to eliminate those infamous 
"GOTCH-YAs" in record time, and well within budget, by pin-pointing the exact code that created an error. This is a 
tool no developer should be without. 

Plus-Five is also impressed with the hardware portability of OS-9. We cloned our OS-9 MUMPS from the 
PC68K1 PCbus platform to a 25MHz. Motorola 147 (68030) CPU based. VMEbus system in a few hours. That was a 
real treat, and we sec no reason why we should experience any special problems installing OS-9 MUMPS on any 
properly implemented port of OS-9. 

Another OS-9 feature, which Plus Five found to be superior as compated with UNIX, is its interprocess control 
(IPC) feature. Efficient interprocess communication permits the development of significantly more sophisticated 
applications with much less effort. Consider what happens when a conventional operating system and software are 
monitoring and collecting data from a dozen or more scientific instruments and an emergency situation arises on one 
of these instiumcnts (ic., the temperature threshold is exceeded). Jumping to an unscheduled emergency routine could 
easily result in loss of data from one of the other inputs. Avoiding such a pitfall can be complex when one is writing 
software for a conventional operating system. Using OS-9's IPC feature, each of the scientific instruments could have 
its own monitoring and data collection process, which would operate independently of all others, and each of these 
processes could communicate with one another and with independent emergency routines. Data collection and equip- 
ment monitoring activities would not be interrupted by unscheduled emergencies. The importance of IPC to medicine, 
where MUMPS is already vciy strong, and to indusliy, where MUMPS is gaining acceptance rapidly, is obvious. 

Leads would be greatly appreciated. 

4.0 CONCLUSION 

MUMPS benefits substantially from the powerful features of OS-9. Plus-Five is impressed with OS-9, with Microwarc 
documentation and support, and with the Ultrascicncc products. We applaud the Ultrasciencc OS-9 PC68K1 
coprocessor as the ideal means to spearhead an increased penetration of OS-9 into the classroom, development lab, 
and thence into the broad marketplace. The cost-effectiveness of the PC68K 1 compared to LANs, its compatibility 
with PCbus machines, and the poitability of OS-9 applications lo larger machines gives applications developed a 
marvelous opportunity. 



KEYWORDS: 

MEMIOX (Ultrasciencc) 
MUMPS (OS-9 and UNIX) 
OS-9 (Microwarc) 
OS-9 MUMPS (Plus Five) 
PC68K1 (ULtrasicencc) 
UNIX MUMPS (Plus Five) 



+++ 



FOR THOSE WH 



HMiEl) () A.vmv 



68 MICRO 

journal/ 



66 Mere Journal 



May 69 



23 



Some Thoughts on a 



Karl Lunl 

7349 W. Canterbuiy 

Peoria, AZ 85345 (6O2)-878-0305 



68xxx ROM Monitor 



My newest computer isa680l0 board I purchased surplus for $40. 
One of the first tilings a user of such a suiplus board must do is to 
rewrite the original ROMs so the board will do something useful 
for its new owner. That means designing and writing a new ROM 
monitor. 

1 had already written several ROM monitors for my 6809 systems 
and learned several things that I wanted to change in the 68xxx 
monitor I was preparing to write. 

The new ROM had to support a siring output routine much more 
sophisticated than the PSTR1NG utility normally found in the 6809 
monitors. Specifically, 1 wanted the string utility to support 
multiple arguments and formatted hex/decimal output. 

Ihemonitorhadtopeimiion-ihe-flychangesiotheprimiiiveinput 
and output routines. This was necessary to permit either of the two 
serial ports to use the monitor as needed. Ideally, changing from 
serial port to serial port 1 should be no more difficult than 
changing a couple of RAM vectors. 



The 680x0 code for the monitor was developed on a PC/XT 
compatible running the 2500 AD. 68001 cross assembler and 
linker system. 1 used Sidekick as my text editor, piincipally 
because it is fast, RAM-based and 1 already knew how to use it. In 
the early stages of development, 1 had to burn different versions of 
the monitor into ROM, install the ROMs in the board, try the 
software, then repeal the cycle as necessary . The current version 
of the ROM supports downloading of S19 records, considerably 
easing the development of new software or monitor extensions. 1 
have been using Crosstalk to communicate between the host PC 
and the target 680 10 system, but just about any good PC public- 
domain modem program should work fine. 
The first order of business is the formatted string output routine. 
PRIN1F. The code for this routine can be found in the book 
"68000 Assembly Language," by Stanley and Kraniz (published 
by Addison- Wesley). This book is an absolute gold-mine of 
information for Ihe680x0programmer;lconsideriia"musi-have" 
book and have nearly destroyed m y copy from overuse. (Don, how 
about a review of this book?) (ok. Karl, we' 11 be looking forward 
lo it ■ DMW) 



The new monitor had to use NO local RAM variables. This was 
lo permit more than one user to be running the monitor at the same 
lime, in turn allowing the monitor to work in a multi-user fashion. 
As it turned out, the only local RAM variables used by the monitor 
are the (A) vectors in RAM, described above, and a memory-test 
flag used at RESET lime. 

Ine monitor had to provide some simple system checks upon 
power-up or reset, but also had to be smart enough to recognize 
when a user program was already installed in memory and not 
overwrite that program with a memory check just because some- 
one hit the RESET switch. 

Ibis monitor also had lo be callable from a user progiam. This 
means that a user should be able to execute a JSR MONITOR to 
enterthe monitor from his program, make full useofthe monitor's 
capabilities, then EXIT back to his program and continue as if 
never having left the program. 

A monitor that does all of the above, plus considerably more, is 
presently running on my 68010 board. I will make the source 
listings available lo 68MJ readers for use in their own systems or 
for any other non commeicial use they might have. Credit to 
different sources of information appear throughout the source 
listings; if you use this code, please leave the notices intact so the 
original thinkers get the credit they deserve. 



1 be PR1NTF fiuiction. like its C namesake, permits the output of 
formatted siring and numeric information. All arguments u> 
PRINTF are placed on the stack and must be popped from the stack 
by the calling program after the return from PRINTF. 

Each call to PRINTF must have at least one argument; the LONG 
address oflhe formatted string to be printed. If this formatted siring 
requires any arguments of its own (such as a decimal number to be 
printed in the body of the siring), those argumenis must also be 
pushed onto the stack. Ibese secondary argumenis must be pushed 
in reverse Older of need, prior to pushing the addiess of the 
formatted string. A short example might make this more clear. 

Consider a formatted string to print the amount of RAM available 
to a user and the first address of that RAM. It would make most 
sense if the first value was displayed in decimal and the second 
value in hex. An example of how you mighi want the display to 
appear could be: 

AVAILABLE RAM: 129300 BYTES FIRST RAM LOCATION: $42000 



24 



May -B9 



68 Micro Journal 



The following segment of680x0code, using the PRINTF function, 
will do just that. 



MOVE.L 


A0.-(A7) 




FIRST RAM LOC IN AO TO 
STACK 


MOVE.L 


D0,-(A7) 




AMOUNT OF RAH IN DO TO 
STACK 


MOVE.L 


IFHTSTRG,- 


(A7> 


PUSH ADDRESS OF STRING 


JSR 


PRINTF 




DISPLAY THE STRING 


ADD.L 


#12, A7 




PULL 12 BYTES FROM STACK 


BRA 







REST OF PROGRAM FOLLOWS 


FMTSTRG : 








BYTE 


SOD, SOA 






BYTE 


'AVAILABLE 


RAM: 


ID 


BYTES 


i 






BYTE 


'FIRST RAM 


LOCATION: SIX' 


BYTE 


SOD, SOA 






BYTE 







REQUIRED NULL TERMINATOR 



As you can see, using the PRINTF routine is only slightly more 
complicated than the 6809 PSTRING routine, and far more 
powerful. Besides handling LONG decimal and LONG hex 
values, the PRINTF routine can handle a variety of other 
formatted data. The full list is: 

WORD decimal 

Id displays 16-bit signed decimal LONG decimal 

ID displays 32-bit signed decimal WORD decimal 

lu displays 16-bit unsigned decimal LONG decimal 

IU displays 32-bit unsigned decimal WORD hex 

Ix displays 16-bit hex LONG hex 

IX displays 32-blt hex string 

Is displays null-terminated string character 

tc displays single literal char 

Although the routine is named PRINTF, its formatting convention 
differs significantly from the C version of PRINTF; full details on 
how the routine works can be found in "68000 Assembly Lan- 
guage" and by looking throught the examples in the ROM monitor 
code. 

Ihe implementation of I/O vectors is based somewhat on the 
method used by FLEX for redirecting IAD. The way the monitor 
handles the I/O, however, is more flexible. 

All calls to the general purpose I/O routines are to ROM enuy 
points namedGETC.PiriC and KEYPRSD. For example, ifyour 
program wants to output a character to the terminal, it pushes the 
character (as a WORD) onto the stack and JSRs to PUTC. When 
control returns from PUTC, your program must then pop the 
character off of the stack befoie continuing. 

Each of these primitive routines, however, is routed through a 
RAM- based vector to the appropriate I/O routine, depending on 
which user pott is active at the time. For example, if user port is 
active, GE1C will jump through a RAM vector that is aimed at 
GETCO, the routine that gets a character from serial port 0, 

Although the code for both GETC and GETCO reside in ROM, the 
link between the two is in RAM and may be modified at any time. 
This link could just as easily point to GETC1. the ROM-based 
routine that services serial poet 1. In this case, GETC would return 



a character input from port 1. A full set of GETC, PUTC and 
KEYPRSD routines exist in ROM for both of the serial pons. 

Thisconceptof RAM-based links for the primitive I/O routines can 
be extended even farther. If a user's program wants to talk to a 
printer (as an example) or a virtual terminal, the RAM links to the 
IAD functions can be changed to permit ihe user's interface routines 
to run. Because PRINTF and all other higher-level monitor 
routines use only the geneial GETC, PUIC and KEYPRSD entry 
points, the full monitor will run on any setof driveis installed with 
the RAM links. 

But how do you write a monitor that uses NO global RAM 
variables? If you have never programmed on the 680x0 before, 
you are in for a real treat Motorola provided the programmer with 
the LINK andUNLK instructions, specifically designed for cieat- 
ing stack-based variables. Ihe structure created by these instruc- 
tions is called a frame and it is crucial to much of the power in this 
ROM monitor. 

The customary way for a routine to handle variables used to 
involve selling aside a small, fixed area of RAM for storage of 
things such as flags, counters, pointers and other data structures. If 
you tried to use the same piece of code to service two different 
users, however, one user's variables would get overwritten by the 
other's values, causing the routine to lose track of what was going 
on. 

The answer to this problem is to put the variables in the stack. S ince 
each user would (hopefully) enter the routine with adiffeient stack 
pointer value, Ihe variables associated with that user would be 
safely stored out of the way and available only to the proper user. 

This, however, leads to a different pioblem. Upon entry to a 
routine, the item on the top of the stack is the return address 
(something your routine is liable to need again soon). Behind that 
address (going upwards in memory) may be arguments needed by 
Ihe routine itself. Behind those arguments will be other return 
addresses and eventually the "bottom" of the stack. This means 
that a routine cannotarbitrarily store local vai iables and data on the 
stack using a positive displacement (that is, using addresses higher 
than the current stack pointer). 

Well, how about going downwards (using negative displacement) 
on the stack? While it is possible to store and retrieve variables 
using the stack pointer plus some negative offset, this technique is 
doomed to failuie as soon as interrupt or exception activity begins. 
Ihe reason for this should be obvious; when an interrupt occurs, 
the first thing the CPU does is push vital information onto the stack 
and race off to service the interrupt If this interrupt occurs in a 
routine that is storing data on the stack using negative displace- 
ments, that data will occasionally be trashed. 

Enter, then, the LINK instruction. LINK "freezes" the stack by 
first copying the current stack pointer value into a selected register 
(by convention this is usually A6). then moving the stack pointer 
downwards in memory a specified amount. Ihis has the effect of 
reserving a block of the stack for the routine's use RELATIVE TO 



68 Micro Journal 



May 89 



25 



THE A6 REGISTER. Now, references to stack-based variables 
relative to A6 can be safely made, regardless of inteirupt activity. 
When it comes time to exit the routine, the UNLK instruction 
repairs the stack (it even restores the selected register) and leaves 
the return address on the stack, ready for the subsequent RTS. 

The best way to get a handle on the LINK instruction and the 
concept of stack framing is to study the examples in the monitor 
code and to read the text in "68000 Assembly Language." This is 
an extremely valuable programming tool and is worth the time it 
takes to understand it. 

The ROM monitor makes heavy use of stack framing. In fact, the 
only global RAM variables used by the monitor are the I/O links 
discussed above and a coupleof flag LONGs used to determine the 
course of action to take on reset. The entire monitor, then, can be 
thought of as a huge subroutine. Any user can execute the monitor 
by simply treating it as a subroutine and JSRing to it. All of the 
monitor's text buffers, flags and other data will be safely tucked 
away in the calling program's stack. 

The ROM monitor performs a few simple chores upon reset. It 
tests the mapping RAM (used to assign physical RAM pages to 
logical addresses) and it tests all of available RAM before it 
configures the RAM-based serial links and announces its presence. 

But this testing of RAM, even though it is important the first 
timeyou apply power, can be a real pain if the program you are 
testing runs away, forcing a RESET. All of your patching and 
testing can gel wiped out by the RAM check, costing you a lot of 
work. 

To pievent this from happening, the monitor writes a key value in 
aspecific location of RAM after it has successfully tested memoty. 
On the next reset, i tfirst checks this location to see if the key value 
is still there. If it is, the RAM test is skipped, leaving the user's 
program intact. 



As I have already mentioned, the monitor's heavy use of stack 
framing permits it to be treated as a giant subroutine. In fact, the 
code itself reveals that there is a huge routine called MONITORS 
and a very small outer loop that exists solely to call MONITORS. 
If you want to access the monitor fiom within a user program, you 
need only JSR to the ROM address named MONITOR. At that 
time the active poet will display the monitor's prompt and you may 
enter any legal monitor commands. If you then use the monitor's 
EXIT command, the monitor will execute a RTS, reluming you to 
youroiiginal program. 

Th is provides some very powerful capabilities to someone trying 
to develop software on such a system. Adding a special keyboard 
sequence into your program code (for example) permits you to 
activate the monitor, view or modify memory as desired, then 
return to your program to continue with your testing. 

This is only a part of the resources available to a developer using 
this monitor ROM. Other goodies in the code include the obliga- 



tory memory dump (DU), the ability to upload Motorola SI 9 
records with an optional address offset (RL), an imbedded CASE 
suppoit routine available to a calling program, and much more. 

If there is enough interest in this ROM monitor, I can continue this 
discussion in subsequent issues of 68MJ. For example, I already 
have code running (not yet in the monitor ROM) that allows more 
than one user to execute the monitor simultaneously, providing 
true multi-user power at the monitor. 

Editor's Note: If you want more of this please let me know, or 
communicate directly with the author. With the availability of 
"bargain" and surplus hardware .this type of information is like 
a tamp-post in the night! Takes me back a few years, how 'bout 
you? 

DMW 

• MONITOR 

■ Main routine in the 68010 EPROM. 

* Note that there is no ORG stjtmcnt in this block. It 
should be 

* LINKed to appear at address $800100, as that Is when 
the COLDS 

* vector is aimed. 



EXTERNAL 


PRINTF,SINIT,PUTC,GETC,GETLINE 


EXTERNAL 


DUMP MEM, FILL, SWEEP 


EXTERNAL 


PROMPT 


EXTERNAL 


CASE, UPPER 


EXTERNAL 


ACTRAM, TESTRAM 


EXTERNAL 


CHANGE 


EXTERNAL 


S19.GO 


EXTERNAL 


MONITOR, WARMS 1 


EXTERNAL 


OUMP_REG$ 


PUBLIC 


WARMS S , COLDS $ , PROCESS S , MON ITDR$ 


PUBLIC 


WARMS IS 


BUFFER E0U 


-256 STACK-BASED TEXT BUFFI 



CHARS 



MON SP: EOU 



SDF0 



STACK MUST ALLOW FOR 256 



REFER TO MONITOR 
(BELOW) FOR USE 



STACK POINTER 
USED BY MONITOR. 
THIS IS THE 
VALUE WRITTEN TO A? 
BY BOTH COLDS AND 
WARMS 1 . 



COLDS $: 



MAPTEST; 



MOVE.W 
MOVE.L 

MOVE.W 

MOVE.W 
MOVE.W 
AND.L 



IS3700, $450000 
•$400000, AD 

IS3FF, DO 

l$01A5, <A0) 
<A0) ♦,01 
ISOIFF.DI 



LEDS : G _ R 
POINT AT START 
OF MAP RAM 
SET A COUNTER 

WRITE A WORD 
READ IT BACK 
MASK OUT 
CONTROL BITS 



26 



May '89 



68 Micro Journal 



CMP.W 


•S01A5, 01 


NOW TEST IT 


EXITMSG: 


BNE 


RAMFAIL 


BRANCH IF 
PAIL 




DBF 


DC.MAPTEST 


COUNT THIS 
WORD 




BRA 


STARTUP 


BRANCH IP ALL 








GOOD 




RAMFAIL: 






• Main 


BRA 


RAMFAIL 


DIE HERE WITH 


I 






LEDS ON 


* Norma 



STARTUP: 






HOVE.W 


I53E00. $450000 


LEDS: R G 


HOVE.W 


•$2000,5400000 


SWITCH ON 
LOWEST 4K BLOCK 


MOVE . L 


•MON_SP, AT 


PUT STACK IN 
LOWEST RAM 


MOVE . L 


»SA5A5A5A5,S0FFC 


TEST A LOCATION 


CMP.L 


ISA5A5A5A5, S0FEC 




BNE 


RAMPAIL 


BRANCH IF 
FAILURE 


HOVE.W 


»$3B00,S450000 


LEDS: G Y 


BSR 


ACTRAM 


ACTIVATE ALL 
SYSTEM RAM 


HOVE.W 


•53900, $450000 


LEDS: Y G Y 


BSR 


SINIT 


INITIALIZE THE 
SERIAL PORT 


HOVE.W 


IS3000, $450000 


LEDS: Y G 


MOVE.L 


• HELLO, -(A7) 


GET FIRST 
MESSAGE 


BSR 


PRINTF 


DISPLAY IT 


ADDQ.L 


14, AT 


ADJUST STACK 


MOVE.W 


IS3F00, $450000 


LEDS: m G 


CMP.L 


•$A5A5A5AS,$FF8 


BEEN THROUGH 
THIS BEFORE? 


BEO 


WARMS IS 


SKIP TEST IF SO 


BSR 


TESTRAM 


TEST ALL 
AVAILABLE RAM 


MOVE.L 


00.-1AT) 


PUSH SIZE OF 
RAH 


MOVE.L 


DO, -(AT) 


PUSH IT AGAIN 


MOVE . L 


•SIZE,- (AT) 


PUSH MESSAGE 


BSR 


PRINTF 


DISPLAY IT 


ADD.L 


112, A7 


REPAIR STACK 


MOVE.L 


• SA5A5ASA5, $FF8 


WRITE FLAG TO 
SHOW WE'VE BEEN 


* 




THROUGH HERE 




ALREADY (SEE STARTUP) 



HELPS: 



MOVE.L 
BSR 

ADDQ.L 



•FIRST, -(AT) GET SIGN-ON MESSAGE 

PRINTF PRINT IT 

• 4, AT FIX THE STACK 



WARMS1S: 



MOVE.L 



• HON SP.AT 



ENTRY POINT THAT 
RESETS THE SP 



WARMSS: 





BSR 


DUMP_REGS 


REINSTALL THE DUMP 
REGS VECTOR 




BSR 


MONITORS 


BRANCH TO THE 
MONITOR WITHOUT 


• 






RESETTING THE STACK 


• 






POINTER. 


MOVE.L 


•EXITMSG, -(AT) TELL USER EXIT 








ISN'T GOING TO WORK 




BSR 


PRINTF 


PRINT IT 




ADDQ.L 


14, AT 


FIX THE STACK 




BRA 


WARMSS 


AN ENDLESS LOOP 



BYTE SOD, S0A.SDA 

BYTE 'An EXIT back Co Che ROM Monicor 

is' 
BYTE ' preccy pointless, you know.' 
BYTE S0D.S0A 
BYTE 

* Main routine for Che 68010 ROM monicor. 

* 

* Normal encry is from a COLD start following reset. 
Alcernace 

* encry is from a user program via Che WARMS (or WARMS1 
enc ry . 

* 

* A user program may also encer via Che MONITOR jump 
veccor in 

* Che ROM jump cable. Encering chrough this poinc 
permits a user 

* program to accivace Che monicor with a special se- 
quence from 

* within Che program, use Che monicor as if it had been 
accivated 

* by a warm-start, then return to the user program with 
an EXIT 

* monicor command. Encry by chis technique should be 
with a JSR. 

' Leaving Che monicor chis way will recurn Co Che 
calling program 

* wich ALL registers preserved, though the CCR is not 
saved . 



MONITORS : 

LINK A6, (BUFFER SET THE TEXT 

BUFFER IN STACK SPACE 

MOVEM.L 00-0T/A0-AT,-(A7> SAVE EVERYTHING 
LOOP: 

BSR PROMPT 

LEA BUFFER (A6) , A0 POINT AO AT 

TEXT S7RING 

BSR GETLINE 

BSR PROCESSS 

BRA LOOP 
* 

* NOTE: Exit from this routine is via the monitor EXIT 
command, 

* whose code follows in Che case structure below and Is 
lab led 

* EXITS. 



* PROCESS 

* This is the core of the ROM monitor. It executes the 
command 

* found in Che firsc cwo characcer posicions of Che lin> 
polnced 

' at by A0 . Noce chac chis routine is available exter- 
nally via 

* the jump table. This permits a user Co load a scring 
vtlch a 

* monicor command, puc Che scring' s address in AO and 
JSR here 

* so Che monicor can process the command. As is cuscom 
ary, any 

* scring submicced Co PROCESS muse be cerminaced wich a 
null byce. 

* Additionally, any monitor command must be two charac- 
ters long 

* and must begin in column one. 



68 Mcro Journal 



May '89 



27 



PR0CES5S: 




BYTE 


• Available RAH: 


%D bytes. 




CMP .B 


10. (AOI ANYTHING ON THE LINE? 




First non-RAM add 


ress: »X.' 




BEQ 


PROCX BRANCH IF NOT 


BYTE 


SOD.SOA 






MOVE.L 


AO.Al YES, MOVE POINTER 
INTO Al 


BYTE 









BSR 


UPPER CONVERT TO UPPERCASE PROC_ 


T8L: 








MOVE . W 


(Al), DO GET THE FIRST TWO 


WORD 


8 








CHARACTERS 


BYTE 


•D'.'U' 


DUMP COMMAND 




MOVE.L 


#PROC_TBL,A0 GET ADDR OF PROCESS 
TABLE 


LONG 


DUMPHEHS 






BRA 


CASE DO THE COMMAND 


BYTE 
LONG 


'S'.'H' 
SWEEPS 


SWEEP COMMAND 


PROCX: 














RTS 


RETURN TO MAIN LOOP 


BYTE 


, F . , j, 


FILL COMMAND 








LONG 


FILLS 




• JUMP 


TABLE FOR 


THE CASE SWITCH ABOVE. THIS TABLE IS 


BYTE 


•c* , ' h' 


CHANGE 


NEEDED 


SO 








COMMAND 


• THE 


LINKER WILL PROPERLY RESOLVE THE ADDRESSES IN THE 


LONG 


CHANGES 




CASE SWITCH 










• TABLE. 




BYTE 


•H'.'E' 


HELP COMMAND 


« 






LONG 


HELPS 




DUHPMEMS: BSR 


DUMP MEM 


BYTE 


*R' ,'L' 


RAM LOAD 




BRA 


PROCX 


LONG 


Sl»S 


(S19) COKHANO 


SWEEPS: 


BSR 


SWEEP 










BRA 


PROCX 


BYTE 
LONG 


»G'. '0' 
GOS 


GO COMMAND 


FILLS: 


BSR 


FILL 










BRA 


PROCX 


BYTE 
LONG 


•E', 'X' 
EXITS 


EXIT COMMAND 



CHANGES: 



Sl»S: 



GOS: 



EXITS: 



BSR 
BRA 



BSR 
BRA 



BSR 
BRA 



CHANGE 
PROCX 



S19 
PROCX 



GO 
PROCX 



LONG 



WHAT 



DEFAULT CASE 



HELLO: 



ADDQ.L M.A7 POP THE PROCESS RTN ADDR 
MOVEH.L (A71+.D0-D7/AO-A7 RESTORE 

EVERYTHING 
UNLK A6 REMOVE THE FRAME 
RTS LEAVE THE MONITOR ROUTINE 



FIRST: 



WHAT 

This is the default CASE aim. It just tells the user 
hat the 

Input was not too good. 



WHAT: 



MOVE.L 


• WHAT MSG, 


-»A7) 


BSR 


PRINTF 




ADDQ ■ L 


M,A7 




BRA 


PROCX 





WHAT MSG: 



SIZE: 



BYTE 
BYTE 



BYTE 



BYTE 



SOD.SOA 

* Beats me what you want. Try 
again . ' 




SOD.SOA 



BYTE 


SOD.SOA, SOA 


BYTE 


68O10 ROM MONITOR VI. 2' 


BYTE 


SOD.SOA 


BYTE 


Written for the Convergent 




Technologies' 


BYTE 


* Mini-Frame' 


BYTE 


SOD.SOA 


BYTE 





BYTE 


$00, SOA. SOA 


BYTE 


'All commands are two characters. 




followed ' 


BYTE 


'by any arguments.' 


BYTE 


SOD.SOA 


BYTE 


'Separate all arguments (in hex) 




by at least * 


BYTE 


''one space, Available' 


BYTE 


SOD.SOA 


BYTE 


'commands are:' 


BYTE 


SOD.SOA, SOA 


BYTE 


1 Dump memory DU <addr>' 


BYTE 


SOD.SOA 


BYTE 


Sweep memory SW <start> 




<stoP> Itlmes)' 


BYTE 


SOD.SOA 


BYTE 


' Change memory CH <addr> 




<data>. . ,<data> or' 


BYTE 


SOD.SOA 


BYTE 


' CH <addr>' 


BYTE 


SOD.SOA 


BYTE 


Fill memory FI <start> 




<stop> <data>' 


BYTE 


SOD.SOA 


BYTE 


RAM Load (S1-S9) RL <offset 




addr>' 


BYTE 


SOD.SOA 



28 



May 69 



68 Mkro JbumaJ 



BYTE 

BYTE 
BYTE 
BYTE 
BYTE 



* Goto location GO 

<transfer addr>' 
SOD, SOA 

* Exit monitor EX' 
SOD, SOA, SOA 





END 



TITLE 



PRIHTT.ASM 



PRINTF - Subset/superset of C print! standard I/O 
function 

Control args: 

push last parameter in control string first, then 
next-to- 
last, etc. Push addr of control string last. 

%d Print signed decimal word 

%u Print unsigned decimal word 

%D Print signed decimal longword 

%U Print unsigned decimal longword 

%x Print hexadecimal word 

%X Print hexadecimal longword 

%s Print null-terminated string 

%c Print character 

%v Cursor (x,y) - push x, then y as words 

tdefault Print next character as literal 

Taken from "68000 Assembly Language,' by Krantz and 
Stanley. 

Listing appears on page 234. 



PUBLIC PRINTFS 

EXTERN CASE, PUTC. CURSOR 
# 
• LOCAL VARIABLE DISPLACEMENT DEFINITIONS 









CTRL STRING CHAR 


EXT.W 


DO 




* 


CLEAR HIGH 
BYTE 


CHP.B 


I'-', DO 




* 


IS IT MINUS? 


BNE 


SKOPF 




* 


NO, TRY 
AGAIN 


MOVE.W 


11, LEFT J (A6) 


» 


SET LEFT 










JUSTIFY FLAG 


BRA 


LPOPF 




• 


TRY FOR NEXT 
CHAR 


CHP.B 


l'0',DO 




* 


IS IT < 07 


BLT 


SK1PF 




* 


YES, CONTINUE 
PROCESSING 


CMP.B 


• ' 9', DO 




• 


IS IT > 9? 


BGT 


SK1PF 




* 


YES, CONTINUE 
PROCESSING 


MOVE.W 


FIELDIA6) 


Dl 


* 


GET CURRENT 
FIELD SIZE 


MULU 


110, Dl 




* 


SHIFT LEFT 
3NE DEC DIGIT 


AND." 


*SOOOF,D0 




* 


CONVERT 








ASCII TO NUMBER 


ADD.W 


D0.D1 




* 


ADD TO FIELD 
WIDTH 


MOVE . W 


D1,FIELD(A6) 


* 


SAVE IT 


BRA 


LPOPF 




* 


GET NEXT 
FORMAT CHAR 


SK1PF: 










MOVE.L 


IDISPATCH 


A0 


* 


GET CASE 
TABLE ADDR 


BRA 


CASE 




* 


DO CASE 


NO CTL: 










MOVE.W 


DO, -<A7) 




* 


PUSH CHAR 


BSR 


PUTC 




* 


PRINT IT 


ADDQ.L 


• 2, AT 




* 


TRASH 
PARAMETER 


BRA 


LOOP 




* 


DO IT AGAIN 


EXIT: 










MOVEM . L 


(A7) + ,D0- 


D6/AO-A2 




UNLK 


A6 








RTS 











LEFTJ 


EQU 


-2 


FIELD 


EOU 


-4 


SIGNF 


EQU 


-6 


* 






« 






PRINTFS 


: 






LINK 


A6, 1-6 




MOVEM. L 


D0-D6/A0-A2,-(A7) 




MOVE.L 


8(A6) ,A1 




LEA 


12(A6).A2 


LOOP: 








MOVE.B 


(Al) + ,D0 




BEO 


EXIT 




EXT.W 


DO 




CMP.B 


l'%',D0 




BNE 


NO_CTL 




CLR.W 


LEFTJJA6) 




CLR.W 


FIELD (A6) 




CLR.W 


SIGNFIA6) 


LPOPF: 








MOVE.B 


<Al)+,D0 



D ARG: 



* GET CONTROL 
STRING AODR 

* GET POINTER 
TO PARAMETERS 



MOVE.W 


IA2) +.D0 


EXT.L 


DO 


BSR 


SIGN 


BRA 


PRINTDEC 



U ARG: 



* GET CONTROL 
STRING CHAR 






MOVE.W 


(A2)*.D0 


* QUIT IF IT'S 
A NULL 






AND.L 


ISOOOOFFFF.DO 


• CLEAR HIGH 
BYTE 


• 




BRA 


PRINTDEC 


* SEE IF IT'S 


« 








CONTROL FLAG 
• BRANCH IF 
NOT 


Dl. 


ARG: 


MOVE.L 


(A2) +,D0 


* CLEAR LEFT 
JUSTIFY FLAG 






BSR 


SIGN 


• CLEAR FIELD 
WIDTH 


■ 




BRA 


PRINTDEC 


• CLEAR SIGN 


* 








FLAG 


Ul 


ARG: 






* GET NEXT 






MOVE . L 


fA2)+, DO 



* GET VALUE, 
MOVE POINTER 

* CONVERT TO 
COMMON FORMAT 

* PRINT SIGN, 
GET ABSO 

* PRINT VALUE 



GET VALUE, 

MOVE POINTER 

ZERO HIGH 

WORD 

PRINT VALUE 



GET VALUE, 
MOVE POINTER 
PRINT SIGN, 
GET ABSO 
PRINT VALUE 



* GET VALUE, 



H Mm Journal 



May "80 



C=*»»»iC«£P«5.j(S 



Telephone: (SIS) 842 4600 



South 'Last Media 

OS-9, llm'JL-LX, 'JL'LX, S9CDOS 



Tetc\: 5 106006630 
<Fa% (615) 842-799Q 



ASSEMBLERS 

ASTRUK09 from St. Media - A "Structured Assembler for ihe 6809" 
which requires lhe TSC Macro Assembler. 
FLEX. SKDOS. CCF S99 95 
Macro Assembler for TSC The FLEX. SKDOS STANDARD Assembler 

Special - CCF $35.00. FLEX. SKDOS $50 00 
OSM Extended 6809 Macro Assembler from Uoyd I/O. -- Provides local 
labels, Motorola S records, and Intel Hex records; XKEF. Generate 
OS-9 Memoiy modules under FLEX. SKDOS. 
FLEX. SKDOS. CCF. OS 9 $99 00 
Relocating Assembler/Linking Loader from ISC. -- Use with many of lhe 
C and Pascal Compilers. 

FLEX, SKDOS. CCF SI50.00 
MACE, by Graham Troll from Windrush Micro Systems -- Co-Resident 
Editor and Assembler fast interactive A.L Programming for small lo 
medium sized Programs. 

FLEX. SKDOS. CCF - J75 00 
XMACE MACK w/Cioss Assembler for 6R0O7I/ 2/3/8 
FLEX. SKDOS. CCF . $98 00 

DISASSEMBLERS 

SUPER SLEUTH from Computer Systems Consultants Interactive 
Disassembler; extremely POWERFUL' Disk File Hinny/ASCll 
[ixumme/Chjuigc. Absolute ui FULL Disassembly XREF Generator, 
I jbel "Name Changer", and Files of "Siandurd I jbel Names" for 
different Operating Systems. 
Color Computer SS-50 Bus (all w AL Source) 
CCD (32K Read) Object Only $49 00 

FLEX. SKDOS $99 00 . CCF Object Only $50 00 UniFLEX $100 00 
CCF. with Source $99 00 OS-9. $101 .00 . CCO, Object Only $50 00 
68010 SUPER SLEUTH ■ Sirmluir to8Bt< Version except written 
m "C" 

68010 Disassembler $10000 FLEX. UniFLEX. UNIX. XENIX, 
MS DOS. SKDOS. OS-9 

OS9/6SK Object Only $100.00 or with Source $200.00 
DYNAMITE* ■■ Excellent standard "Match Mode" Disassembler. Includes 
XREF Generator and "Standard Label" Files. Special OS-9 options 
with OS-9 Version. 

CCF. Object Only $100.00 . CCO, Object OnlyS 59.95 

FLEX. SKDOS , Object Only $100.00 - OS 9. Object Only$l50 00 

UniFLEX Object Only $300 00 

CROSS A SSEMBLERS 

CROSS ASSEMBLERS from Computer System Consultants .. Supports 
1802/5, Z-80. 6800/1/2/3/8/1 1/IIC! I, 6804, 6805/IIC05/ 146805, 6809/ 
00/01, 6502 family. 8080/5, 8030/1 /2/35/C35/39/ 40/48/C48/49/C49/50/ 
8748/49. 8O31/S1/87SI.320OO and 68000/68010 Systems. Assembler 
and Listing formats same as target CPU's formal. Produces machine 
independent Motorola S-Texl. Includes Macro Pre Processor. Written in 
"C" 6*000 or 6S09 •Mactntosh.'Alari. FLEX. CCF. UniFLEX. OS-9. 
XENIX. UNIX. MS-DOS. SK DOS 
any object $50 or any 3 for $100 
any source is an additional $50 or any 3 for $100 
Set of ALL object $200.00 ■ with source $500 00 
XASM Cross Assemblers for FLEX. SKDOS from St. MEDIA - Inn sei 
of 6800/1/2/3/5/8. 6301. 6502, 8080/5, and Z80 Cr.rss Assemblers uses 
Ihe familiar TSC Macro Assembler Command Lme and Source Code 
format. Assembler options, etc., in providing code for target CPU's 
Complete set. FLEX. SKDOS only -$15000 



CRASMB from LLOYD I/O .. Supports Motorola's, Intel's, Zilog's. and 
other's CPU syntax for these 8-Bit microprocessors: 6800, 6801, 6303, 
6804, 6805, 6809. 6811 (all varieties): 6502. 1802/5, 8048 family. 8051 
family. 8080/85. Z8. 280. and TMS-7000 family. Has MACROS. 
Local Labels. Label XREK, Ubel Length lo 30 Chars. Object code 
formats: Motorola S-Records (text). Intel IIEX-Records (text), OS-9 
(binary), and FLEX. SK-DOS (binaiy). Whiten in Assembler ... e.g. 

Verv F«' 
CPU TYPE . Prkeeach: 

For: MOTOROLA INTEL OTHER COMPLETE SET 
FLEX9 S150 SI50 S150 S399 

SKDOS SIS0 SIS0 S150 S399 

OS-9j6809 SI 50 SI 50 SI 50 S399 

OS-968K - $432 

CRASMB 16.32 from LLOYD I/O - Supports Motorola's 6800O.and has 

same features as lhe 8 bil version. OS9/68 K Object code Format allows 

this cross assembler to be used m developing your programs for 

OS-9/68K on your OS-9/6809 compiler. 

FLEX, SK DOS. CCF, OS-9/6909 $24900 

COM MU NIC A TIONS 

CMODEM Tclccuoimunicalions Program from Computer Systems 

Consultants, Inc. - Menu-Driven: supports Dumb Terminal Mode, 
Upload and Download in non-protocol mode, and the Cl'/M "Modem 7" 
Chiistensen protocol mode lo enable communication capabilities for 
almost any n:quircmenl Wniien in *°C 

FLEX. SK DOS. CCF. OS 9. UniFLEX, UNIX. XENIX, MS DOS. 
with Source $100 00 - without Source $50 00 
X-TALK from S.li. Media X TALK consists of two disks and a special 
cable, the hookup enables a 6809 SWTPC computer to dump UniFLEX 
files directly lo Ihe UniFLEX MUSTANG 020. Tliis is the ONLY 
currently available method lo transfer SW1TC 6809 UniFLEX flics lo a 
6A000 Umll.EX system. Gurnx 6809 users may dump a 6809 
UniFLEX file lo a 6809 UniFLEX five inch disk and it is readable by 
the MUSTANG 020. The cable is specially prepared with internal 
connections lo match the non-standard SWTPC SO/9 I/O Dc25 
connector]. A spacial SWTPC S+ cable set ts also available. Users 
should specify which SWTPC system he/she wishes lo communicate 
with the MUSTANG-020. The X-TALK software is fumuhrd on two 
disks. One eight inch disk contains S.E. Media modem program C- 
MODEM (6809) and the other disk is a MUSTANG-020 five inch disk 
with C-MODEM (68020). Text and binaiy files may be directly 
transferred between lhe two systems. The C-MODEM programs are 
unaltered and perform as excellent modem programs also. X-TALK 
can be purchased with or without the special cables, but this special 
price is available lo registered MUSTANG-020 users only. 

X TALK Complete (cable. 2 disks) $99 95 

X TALK Software 12 disks only) $69 95 

X TALK with CMODEM Source $149 95 
XDATA from S.E Media A COMMUNICATION Package for lhe 

UniFLEX Opcraung Syj.iem. Use with Cl'/M. Main Flames, other 
UniFLEX Syitcms, etc Venftes Transmission using checksum or 
CRC: Re-Transmiu but Mocks, etc 

UniFLEX. $299 99 



A>ilkfclltly LifiXi 
O.Oi ». S. SK'IKM 
F - FLEX. It. UniFLEX 
CX» . Olof ObbuIh OS-* 
CO • Cotor ContHiln VIXX 




S out ft 'Last 'Media 

5900 CassandraSmitn "H Xivon, Tn. 37343 



[mcKli'rr.ird 




»* Shipping •• 

Add 1» U.S-X, (nil. IISO) 
l'or<lfn Surnu Add }% 
FOMlc* Alrm.ll Adult* 
Or Can, SktrrJl Onli 



•l]M In Tr.itrm.rt or Mkri—.rt trti Mmnrula -*H KX »nd t.nlFLO in T»»<nn»rimitT«tinkj< SjJnn.rjn.illjiilj.-SICDCis la a 



rfcqrStjr.g Sgftwrt SyrKfm ft,Fp. 



30 



May '89 



68 Micro Journal 



T&pfant: {615} $42-4600 Soil tfl 'East fMedW 



OS-9, lini'JL'EX, '} L'LX, &JCDOS 



•J"etf.\: 5 HhOOt^M) 
'fa%: (615) H42-7990 



PROGRAMMING LANGUAGES 

PL/9 frum Windnish Micro Systems -- By Giaham Trott, A combination 
Editor Compiler Debugger. Diieci souroeto objeci compilation 
delivering fasi, compaci, re -entrant, ROM-able, PIC. 8 & 16-bil 
Integers 4 6-digii Real numbers for aU teal-world problems. Direct 
control over ALL System resources, including uucriupts. 
Comprehensive library support, simple Machine Code interface; step- 
by-step Uacei for inslant debugging. 50CU page Manual with tutorial 
guide. 

FLEX, SK DOS. CCF - $198.0$ 
PASC from S.G. Media - A FLEX9. SK-DOS Compiler with a definite 

Pascal "flavor". Anyone with a bit of Pascal experience should be able 
to begin using PASC to good effect in short order. The PASC package 
comes complete with three sample programs: ED (a syntax or structure 
editor), EDITOR (a simple, public domain, scieen editor) and CHESS 
(a simple chess program). The PASC package comes complete with 
source (written in PASC) and documentation 
FLEX, SK DOS 195.00 

WHIMSICAL from S.G. MEDIA Now supports Real Numbers. "Structured 
Programming" WITHOUT losing the Speed and Control of Assembly 
Language! Single-pass Compiler features unified, user defined I/O; 
produces ROMable Code; Procedures and Modules (including pre- 
compiled Modules); many '"types" up to 32 bit Integers, 6-digil Real 
Numbers, unlimited sized Arrays (vectors only); Interrupt handling; 
long Variable Names: Variable Initialization; Include directive. 
Conditional compiling; direct Code insertion; control of the Slack 
Pointer etc. Run-Time subroutines insetted as called during 
compilation. Normally products 10% less code than PLl9 
FLEX. SK DOS and CCF ■ 1195.00 

KANSAS CITY flASIC from S.G. Media . Basic jor Color Computer OSV 
with many new commands and sub-funcliuns added. A full 
implementation of the IF-THEN GLSE logic is included, allowing 
nusung to 255 levels. Sitings arc supported and a subset of the usual 
siring functions sudi as LEITS, RIGHTS. MID$. SWINGS, etc. arc 
included. Variables are dynamically allocated. Also include! arc 
additional features such as Pack and Poke. A must for any Color 
Cumpuicr user running OS 9 
CoCo OS-9 $39.95 

C Compiler from Windrush Micro Systems by James McCosh. Full C for 
FLEX, SK-DOS except bit-fields, including an Assembler. Requires 
Ike TSC Relocating Assembler if user desires to implement his own 
Libraries. 

FLEX. SKDOS. CCF $295.00 

C Compiler from Intro! - Pull C except Doubles and Bil Fields, 

streamlined for the 6809. Reliable Compiler FAST, efficient Code. 
Moie UNIX Compatible than most. 

FLEX, SK DOS, CCF. OS-9 (Level II ONLY). UniFLEX - $575.00 

PASCAL Compiler from Lucldata -- ISO Based P-Code Compiler. 

Designed especially for Microcomputer Systems. Allows linkage to 
Assembler Code for maximum flexibility. 
FLEX. SKDOS and CCF .$190.00 

OmegaSoft PASCAL from Certified Software Extended Pascal for 
systems and real-time programming. 

Native 68000/68020 Compiler, $575 for base package, options available. 
For OS 9/68000 and PDOS host system. 

6809 Cross Compiler (OS-9/68000 host) $700 for complete package. 



KBASIC - from S.G. MGD1A - A "Native Code" BASIC Compiler which is 
now Fully TSC X BASIC compatible. The compiler compiles to 
Assembly Language Source Code. A NEW, streamlined. Assembler is 
now included allowing the assembly of LARGG Compiled K-BAS1C 
Programs. Conditional assembly reduces Run-time package. 
FLEX SK DOS. CCF. OS-9 Compiler I Assembler $99.00 

CRUNCH COUOL from S.E. MGD1A - Suppoits large subset of ANSli 
Level 1 COBOL wilh many of the useful Level 2 features Full FliiX, 
SK-DOS File Structures, including Random Files and the ability to 
process Keyed Files. Segment and link large programs at luniime, or 
implemented as a set of overlays. The System icquires S6K and CAN 
be run with a single Disk System. A very popular product 
FLEX. SKDOS. CCF $99.95 

FORTH from Stearns Electronics - A CoCo FORTH Programming 
language. Tailored to the CoCo! Supplied on Tape, transferable to 
disk. Wiitten in FAST ML. Many CoCo functions (Graphics, Sound, 
etc.). Includes an Editor, Trace, etc. Provides CPU Cany Flag 
accessibility, Fast Task Multiplexing, Clean Interrupt Handling, etc. for 
the "Pro". Excellent "Learning" tool! 
Color Computer ONLY ■ $58 95 

FORTHBU1LDER is a stand-alone target compiler (crosscompiler) for 
producing custom Forth systems and application programs, 
AU of the 83-standard defining words and control structures are 
recognized by FORTHBUILDGR 

FORTHBU1LDER is designed to behave as much as possible like a 
resideni Forth inietprcier/compiler, so that most of the eslablislied 
techniques for writing Forth code can be used withoul change. 
Ukc compilers for athcr languages, FORTltBUlLDKR can operate in 
"butch mode". 

The compiler recognizes and emulates target names defined by 
CONSTANT or VARIABLE and is readily extended with "comptle- 
timc" definitions to emulate specific targel words. 
FORTHBUILDGR is supplied as an executable command file 
configured for a specific hust system and larger processor. Objeci 
code produced from the accompanying model source code is royalty- 
free to licensed users. 

FLEX. CCF. SK-DOS - $9995 

EDITORS & WORD PROCESSING 

JUST from S.G. Media -- Text Formauer developed by Ron Andeison; for 
Dot Mairix Printers, provides many unique features. Output 
■■Formatted" Text to the Display. Use the FPRIMT.CMD supplied for 
producing multiple copie s of the "Formatted" Text on the Printer 
INCLUDING 1MBEDDGD PRINTER COMMANDS (very useful at 
other limes also, and woilh the price of the program by itself). "User 
Configurable" for adapting to other Printers (comes set up for Epson 
MX-80 wilh Graftrax); up to ten (10) imbedded "Printer Control 
Commands". Compensates for a "Double Width" printed line. Includes 
ihe normal line width, margin, indent, paragraph, space, vertical skip 
lines, page length, page numbering, centering, Till, justification, etc. 
Use with PAT or any other editor. 

' Now supplied as a two disk set: 

Disk */. JUS12.CMD object file, 

JUST2TXT PL9 source FLEX, SKDOS . CCF 

Disk »2: JUSTSC object and source in C: 

FLEX. SK DOS, OS-9. CCF 

Trie JTSC and regular JUST C source are two separate programs. JTSC 
compiles to a version itiai expects TSC Word Processor type 
commands, (pp .sp .ce etc.) Great for your older lexi files. The C 



Av.lLibllUjl^SHKd 
O.OSAS.SK'IXJS 

K.n.EX,u.Uoin.s:x 

CC0 c Color Computer OS.t 
CIT . Color Computer FLKX 




South 'Last 'Media 

5S00 Cassandra Smith Jtf. - "Hi^on. Tn. S7US 



•• Shipping •• 

A<M I* U.SJI. (oiln. JIM) 
foreign Sortkre Add i% 
■Vorelan Airmail A4e 10* 
Or C.O.D. Shloplna Out; 



*OS.*he Trademark sr.Mkqiwere opd M<pinrot«.«Kt.KX end t;nlH.KX ire l'r»q>rnerliiof Veshnkjl Seiierm f:<infuHenu.*SK 'POS !■ a Tradema r a of Star. K Software Sjrjtetne Corp. 



68 r\rlcr o Journal 



May 89 



31 



•Mcplwnc: (615) $424600 SoUtfl 'EilS t fyfecfiCl 



os 9, iini'/L-rx toocs'IC'Dos 



Tefcx; $106006630 
'fax; (615) ■ 842-7990 



source compiles to a siandaid syntax JUST CMD object Tile Using 
JUST syntax (.p ,u ,y etc.) With all JUST functions plus several 
additional punier formatting functions. Reference the JUSTSC C 
source. For those wanting an excellent BUDGET PRICED word 
processor, with features none of the others have. litis is it! 

Disk (1) ■ PLV FUCX only- FLEX. SK DOS A CCF . $49 95 
Disk Sel (2) ■ FLEX. SK DOS & CCF A OS-1) (C version) . $69 95 

OS -9 68K0O0 complete with Source 17995 
PAT from S.E. Media - A full feature screen onenled TEXT EDITOR with 
all the ben of "PIE™". For those who swore by and loved only PIE, 
this is for you I All PIE features and much morel Too many features to 
list. And if you don't like tltese, change or add your own. PL 9 source 
fumishad. "C" source available soon. Easily configured to your CRT. 
with special config section. 

Regular FLEX, SK.DOS S129.SO 

• SPECIAL INTRODUCTION OFFER • J79 95 

SPECIAL PATIJUST COMBO (with source) 
FLEX. SKDOS 199.95 

OS-9 68K Version $229.00 

SPECIAL PATlJUST COMBO 68K $249.00 
Note: JUST in "C" source ovoilable/or OS 9 
CEDRIC from S.E. Media ■ A screen oriented TEXT EDITOR with 

availability of 'MENU' aid. Macro definitions, configurable 'permanent 
definable MACROS' • all standard features and the fastest global' 
functions in the west. A simple, automatic tcnninal config program 
makes lbs a real 'no hassel' product. Only 6K in size, leaving the 
average system over 16S sectors for text buffer - appx. 1 4,000 plus of 
free memory! Extra fine for programming as well as text. 

FLEX. SK.DOS $69 .95 
BAS-EDIT from S.E. Media - A TSC BASIC or XBAS1C screen editor. 
Appended to BASIC or X BASIC, BAS-EDIT Is transparent lo normal 
BAS1C/XBAS1C ^ration. Allows editing while in BAS1C/XUASIC 
Supports ihc following functions: OVERLAY. INSERT and DUP 
UNE. Make editing HASIOXBASIC programs SIMPLE! A ORIA I 
time and effort saver. Programmer! love it! NO mure retyping entire 
lines, etc. Complete with over 25 different CRT' terminal configuration 
overlays. 

FLEX. CCF. SKDOS $3995 
SCR EDITOR III from Windmsh Micro Systems •• Powerful Scrcen- 

Oiienlcd Editor/Word Processor. Almost SO different commands; over 
300 pages of Documentation with Tutorial, features Muhi-Colurnn 
display and editing, "decimal align" columns (AND add them up 
automatically), multiple keystroke macros, even/odd page headers and 
footers, imbedded printer control codes, all justifications, "help" 
support. More common command series on disk. etc. Use supplied "set- 
ups", or remap the keyboard lo your needs. Except for proportional 
printing, this package wtU DO IT ALL1 
6800 or 6909 FLEX. SKDOS or SSBDOS. OS-9 - $175.00 
SPELLB "Computer Diaioruiy" from S.E. Media - OVER 150,000 words! 
Look up a word from within your Editor or Word Processor (with the 
SPH CMD Utility which operates in the FLEX, SK DOS UCS). Or 
check and update the Text after entry; ADD WORDS lothc Didtonaiy. 
"Flag" questionable words in the Text, "View a word in context" before 
changing or ignonng. etc. SPELUi first checks a "Common Word 
Dictionary", then the normal Dictionary, then a "Personal Word List", 
and finally, any "Special Word List" you may have specified. SPELLB 
also allows the use of Small Disk Storage systems. 

FLEX. SKDOS and CCF . $129.95 



STYLO-GRAPH from Great Plains Computer Co. ■- A full-scnxn oiiented 
WORD PROCESSOR - (uses the 51 x 24 Display Screens on CoCo 
J-LtiX/SKDOS, or PBJ Wordpak). lull screen display and editing; 
supports the Daisy Wheel proportional printers. 
NEW PRICES 6909 CCF and CCO $99 95. 
FLEX. SK DOS or OS-9 $17995. UniFLEX- $299 95 
STYLO-SPELL from Great Plains Computer Co. - Fast Computer 
Dictionary. Complements Stylograph. 

NEW PRICES 6909 CCF and CCO ■ $69.95. 
FLEX. SK DOS or OS-9 - $99.95. UniFLEX. $149 95 
STVLO-. MERGE from Great Plains Computer Co. - Merge Mailing List (o 
"Form" Letters, Prim multiple Filet, etc., through Stylo. 
NEW PRICES 6909 CCF and CCO - $59.95. 
FLEX. SK DOS or OS-9 - 17995, UniFLEX- $129.95 
STYLO PAK -■- Graph ♦ Spell ♦ Merge Package Deallll 

FLEX, SK DOS or OS-9 - $329.95. UniFLEX - $549.95 
OS-9 68000 $695,00 

DATABASE ACCOUNTING 

XDMS from Westchester Applied Business Systems 

FOR 5809 FLEX or SK.DOS (5/8") 

Up to 32 groups/fields per record! Up lo 12 character file namesl Up to 1024 
bylc recordsl User defined screen and print control! Process files! Form 
niesl Conditional execution! Process chaining! Upwanl/Do*n ward Hie 
linkingl File joining! Random file virtual paging! Built in utilities! Built 
in leal line editor! Fully session oriented! Fnhanccd form j I Boldface, 
Double width. Italics and Underline supporledl Wiiucn in compact 
structured assembler! Integrated for FAST execution! 
XDMS-IV Data Management System 

XDMS-IV is a brand new approach lo data management, ll not only permits 
users lo describe, enter and retrieve dala, but also to process entire files 
producing customized reports, screen displays and file output. 
Processing can consist of any of a sel of standard high level functions 
including record and field selccuon. sorting and aggregation, lookups in 
other files, special processing of record subsets, custom report 
formatting, totaling and subtotaling, and presentation of up lo three 
related Met as a "database" on user defined output reports. 
POWERFUL COMMANDS! 

XDMS-IV combines the functionality of many popular DBMS software 
systems with a new easy lo use command set into a single intcgralad 
package. We've included many new features and commands including a 
sel of general file utilities. The processing commands arc Input-Process 
Output (IPO) which allows almost instant implementation of a process 
design. 

SESSION ORIENTEDI 

XDMS-IV is session oiiented. Enter "XDMS" and you arc in instant 

command of alt the features. No more waiting for a command to load in 
from disk! Many commands are immediate, such as CREATE (file 
definition), UPDATE (file editor). PURGE and DELETE (utilities). 
Others are process commands which are used lo create a user process 
which is executed wiih a RUN command Either may be entered into a 
"process" file which is executed by an EXECUTE statement. Processes 
may execute other processes, or themselves, either conditionally or 
unconditionally. Menus and screen prompts are easily coded, and entire 
user applications can be run without ever leaving XDMS-IV 



AraltsMIII?L*t<iMl* 
O . OSt. S . SK-tKls 

f ■ Fix*, u • ottaex 

rX'a<Gulo<Omp u lr> OSK 
CCS .Cck.Coml~li.il y\ 



^^^ 



Sou t ft Tost Media 

5900 CassandTaSmilk K£. ■ "Hiitjon. Tn. 37343 




•• Shipping •• 

AM 1* U£A_ (■!(. sua) 
Vmtep S»rfk» AM i% 
ImljlAlrWUMKS 
O.LO.DSW^latO.1) 



*t>S-tlu Yridtmirkattiikrvmrt tnd Mot „r„ t»- *KL E X »nd LntKLEX *r* Tf*tiFMrhig/T«chnkaJ Symmi I'tmcilnnu^SKTlOS taaTrWtmsTk of Sur-K Softwirt SjmwCora. 



32 



May '89 



68 Mcro Journal 



The PC-68K1 
PC Co-Processor 

Personal Computers Become Computer Systems 
Why? 



The standardized, widely accepted, and ubiquitous IBM 
Personal Computer represents an enormous, yet largely 
untapped, resource of computing power. Unless con- 
nected to a costly LAN and fileserver, the single-user "PC" 
provides neither the level of interaction nor the con- 
venient sharing of data so necessary in business, science, 
or industry. However, the simple addition of a PC-68K1 
expands and enhances a PC into a real-time, multi-user, 
multi-tasking, professional computer system, running 
OS-9 and MS-DOS concurrently. A PC-68K1/OS-9 
equipped PC can host a wide variety of high performance 
application software, previously reserved for much larger 
and far more expansive machines, without sacrificing 
MS-DOS applications. The OS-9 operating system offers 
extensive networking capability and a range of popular 
languages, including C, BASIC, PASCAL, FORTRAN, 
etc. Powerful C language VAX/UNIX extensions and a 
special set of OS-9/UNIX library routines make convert- 
ing UNIX applications to the more ellicient OS-9 a simple 
and straightforward task. 

How? 

All that is required to get on-line is an operating PC, a 
PC-68K1 and OS-9. The PC-68KI allows the user to Hip 
between active MS-DOS and OS-9 tasks, using the Per- 
sonal Computer monitor, keyboard, and existing disk 
drives. MS-DOS files are available to OS-9 and vice versa. 

Now... 

Even PC-68K1 equipped PCs. used exclusively for 
software development or education, do not remain single- 
user for long; that would be a terrible waste of power. 
Terminals and all manner of peripherals and interfaces 
can be connected to the PC-68K1 ports. Substantial cach- 
ing disk drives, high-speed tape backup, and special 
purpose boards can be added to the PC bus. In short, the 
Personal Computer becomes a truly professional, cost-ef- 
fective system that means productivity. 




Specifications 

Function 

• Coprocessor for IBM W/XT'AT and compatibles. 

Operating Systems 

■ Real-time. Multi-user, Multi-tasking. OS-9 
executes concurrently with MS-DOS. 

Microprocessor 

• 6HO0O7G8010 MHz and 10/12 5 MHz. 

Real-Time Clock 

■ Time of day and date clock with battery back-up. 

Memory 

• 1 M bytes of dynamic RAM running with 
wait states. 

Note: Dedicated 68K bus wait slates dynamic 
RAM expansion boards are available. 

• 32 K bytes of EPROM. 

• 8 K bytes of battery backed up static RAM 
i optional). 

• Memory mapped, dual ported. IK RAM interface 
supports high-speed DMA transfers to and from 
PC bus. 

Serial Ports 

• T\vo standard DB9S ports, asynchronous 
selectable to 19.2 baud or synchronous. 

Note: Dedicated 68K bun 10 port seriul expansion 
boards arc available. 

Parallel Ports 

• One Centronics port or two 8 bit parallel p»rts. 

Diagnostic Capabilities 

• An automatic self-test is performed at OS-9 
boot-up. 

• Sophisticated software utilities are also provided. 

Reset 

■ Bug-independent, software or switch controlled, 
hardware reset. 

Physical 

• 13.2" x 4.2" standard, full length 8 bit bus slot. 

Electrical 

■ .W© 1.3A, +12 100 mA. -12© 100 mA. 

Operating Environment 

• 5 C to 55 C and maximum 90"J relative 
humidity at board surface. 

Software Support 

• An extensive list of drivers and utilities in 
available. 



ULTRASCIENCE 



DIVISION OF 



GIBBS LABORATORIES, INC. — ^ 

COMPUTER SYSTEMS INTEGRATION 

FAX #1-312-256-0097 PHONE » 1-312-256-OOBO TELEX # 910-997-0379 
1824 WILMETTE AVE • P.O. BOX 558 ■ W1LMETTE. IL 60091 






tiaOvntna SRandPCWKI ULTRASCIENCE OS 9 Moooate SvsWmt Cwp MS DOS MtCrolon COT) IBM iBMCwp UNIX AT1T Boll Lmwato.** VAX OW EQwpnwrK Corp 
Specilicaiens tu^ec* lo change wiihoui not** 



MEMIOX 

Memory I lO 

Expansion 

ULTRASCIENCE 



Easily installed, the MEMIOX 
expands PC-68KI equipped per- 
sonal computers by 1 MB of zero 
wail states RAM and 10 real- 
time, multi-user, multi-tasking, 
serial ports. 

7 Ctwlgtti Ultrmckvnre ISM! 




The MEMIOX 
Memorjr/IO 
Expansion Board 

Expand Your PC to 14 Ports and 2 Megs RAM 



Why. 



Anyone who has discovered the capability of real-time, 
multi-user, multi-tasking OS-9 and the power of the 
PC-68K1 co-processor knows that adding 10 more 
efficient serial ports and another megabyte of wait 
state RAM to a PC-68K1 will turn a "PC" into a 
substantial computer system. Such a system can run 
a business, control a plant, automate a laboratory, or 
support an entire class, and the price is right! 

How? 

The MEMIOX board plugs onto the PC-68K1 and it is 
ready to go. For standard installations, there are no 
jumpers or switches to set. The convenient RJ45 port 
connectors are mounted right on the MEMIOX board 
set, so there is no clumsy hardware to attach and 
connecting peripherals could not be easier. 
Ultrascience offers a complete line of shielded RJ45 
modular cable and adapters to make cabling a snap. 

Now... 

The expanded PC-68K1 system is based on standard, 
large-scale, open-architecture design, which trans- 
lates to smooth, predictable, upgrade paths for both 
hardware and software well into the future. 



Specifications 



Function 

• Expands the RAM and/or I/O of an IBM 
PC/XT/ AT compatible PC-68K1 co-processor, 
using the high-speed 68 K bus. 

Memory 

• 1 M bytes of dynamic RAM running with 
wait states. 

Serial Ports 

• Ten standard RJ45 ports, selectable to 
19.2 Kbaud. 

Diagnostic Capabilities 

■ An extensive automatic self-test is performed 
at OS-9 boot-up. Sophisticated software 
utilities are also provided. 

Physical 

• 13.2" X 4.2' standard, full-length 8 bit bus slot 
and a slot for mechanical support of the 
daughter board. 

Electrical 

• 5v© 1.3A, +12 ©500 mA, -12 ©500 mA. 

Operating Environment 

• 5"C to 55'C and maximum 90* relative 
humidity at board surface. 

Software Support 

• Memory and Serial Ports supported on OS-9. 




GIBBS LABORATORIES, INC. — ^ 



ULTRASCIENCE division of 

COMPUTER SYSTEMS INTEGRATION 

FAX # 1-312-256 0097 PHONE # 1-312-256-0080 TELEX # 910-997-0379 
1824 WILMETTE AVE. ■ P.O. BOX 558 ■ WILMETTE. IL 60091 

SSlPCeeki iSRMEMtOXvel'adnnatltiof UL7RASCIENCE OS 9soin«*Kiis.i( oiMtoowoi* SPKiicabont bibiad loctomgn without nmca 






"CLICK" 



RJ45 Cables and Connectors 



Cables 

Shielded, universal "CLICK" Cables are resistant to 
flame, oils, and many kinds of typical mechanical abuse,' 
and they are ready for use without tools. Eight low resis- 
tance, 2 fully annealed, copper conductors provide enough 
circuits for essentially all computer peripherals. High 
quality insulation and low inter-lead capacitance 3 make 
the use of long lengths practical. A 100% coverage 
aluminum/polyester foil shield controls electromagnetic 
interference (EM I). The quick-release, latching RJ4S con- 
nectors are built with gold plated contacts for reliable, low 
noise, low loss connections. The small cross section of the 
connectors permits them to be threaded through tiny 
openings. 

1 UL»t»fe 2036] 'TVe 10OahnW1in> 'Typ 32 pK/m 

Connectors 

Changing a device is a simple "CLICK"! It is the "CLICK" 
Connectors which bring method to the madness of cabling 
computers. A few standard styles and genders can be 
mixed and matched at either end of the universal 
"CLICK" Cables in order to interconnect terminals, 
printers, modems, PC COM ports etc. "CLICK" Connec- 
tors have gold plated contacts and high-impact, flame 
resistant, oil resistant plastic bodies. 



Routing Aids 



"CLICK" Routing Aids make it easy to keep cables from 
getting tangled, caught, or pinched. Cables can be 
bundled or attached to a surface in a jiffy. 



Part Numbers 

Cables 

. SH-RJ-3 
• SH-RJ-10 
. SH-RJ-20 
. SH-RJ-30 
. SH-RJ-X 



Connectors 

• RJ-RJ-STD 

• FDB25-RJ-STD 

• MDB25-RJ-STD 

• FDB25-RJ-NM 

• MDB25-RJ-NM 

• FDB25-RJ-NC 

• MDB25-RJ-NC 

• MDB9RJ-KIS 

• MDB9-RJ-PCS 

• MDB9-RJ-NC 

• FDB9-RJ-NC 

Routing Aids 
. RA MOUNT 

• RA CLAMP 

• RA-T1E 



3 FootO Meter) 
10 Foot (~3 Meters) 
20 Foot ("6 Meters) 
30 Foot ("9 Meters) 
Custom length 



RJ45 by RJ45 — 
couples/extends cables 

Female DB25 — 
terminals/printers 

Male DB25 — 
terminals/printers 

Female DB25 — null modem 

Male DB25 — null modem 

Female DB25 — custom 

Mate DB25 — custom 

Male DB9 — S/R PC-68K1 

serial port 

Female DB9— PC COM 
serial port 

Male DB9 — custom 

Female DB9 — custom 



Adhesive-backed clip for 
surface mounting cables 

Adhesive-backed surface 
mount for use with cable ties 

Cable ties 




1 



ULTRASCIENCE 

COMPUTER 



SYSTEMS INTEGRATION 

FAX « 1-312-256-0097 PHONE # 1-312-256-0080 TELEX # 910-997-0379 
1824 WILME1TE AVE • P.O. 80X558 • WILME1TE. IL 60091 



GIBBS LABORATORIES, INC. ^-^ 



Coc**"^ 



t«6 ^^^^^^r 



SflPWWl ft « flam* c* UUMSOEXCC St»ol»j**» nrf»»d B eft«^» ^toj rw 



Tcfepftonc : (6 1 5) 842 -4600 



South "Last 'Media 

OS 9 t Uni'JL'EX, JL'ZX, SX*'DOS 



•J'ctt\: 5l0hOQti*30 



ITS EASY TO USE! 

XDMS-IV keeps data management stmplel Rather than design a complex 
DBMS wludi hides ihe ime naiute of the dau. we kepi XDMS-IV file 
oncnied. Pie user view of data relationships is presented in repons and 
(crecn output, while the actual dala resides in easy to maintain files. 
Ihis aspect pennits cusuiraiaed presentation and reports without 
complex redefinition of Ihe database files and structure. XDMS-IV may 
be usad for a wide range of applications from simple record 
management systems (addresses, inventory ...) to integrated database 
systems (order cnuy, accounting.,.) 

The possibilities are unlimited... 

FOR 6809 FLEX or SK-DOSfS"/*" Disk) $249.95 

UTILITIES 

Bisk09 XRcT from S.E. Media - This BasicOS Cross Reference Utility is a 
3asic09 Program which will produce a "preuy printed" listing with each 
line numbered, followed by a complete cross referenced listing of all 
variables, external procedures, and line numbers called. Also includes a 
Program List Utility which outputs a fast "pretty printed" listing with 
line numbers. Requires Bas rc09or Kunll. 

OS 9 & CCO ob/tcl only - V9 9S. mth Source ■ $79.95 

BTr« Routines - Complete set of routines to allow simple implementation 
of keyed files • for your programs - running under Basic09. A real lime 
saver and should be a part of eveiy serious programmers tool-box 
0S-9 A CCO object only - S89.9S 

Lucldala PASCAL UTILITIES (Requires Pascal ver 3) 

XREF - produce a Cross Reference Listing of any text: one" led io Pascal 
Source. 

INCLUDE - Include other Files in a Source Text, including liinaiy - 
unlunitcd nesting. 

PROKILKR -- provides an Indented, Numbered, "Siruciogram" of a Pascal 
Source Text File; view the overall structure of large programs, program 
inlcgnty. etc. Supplied in Pascal Source Code, requires compilation 
FLEX , SKOOS, CCA — EACH 5 " • $40 00. IT $50 00 

DUD from S.E. Media - A UniFLEX HASIC dccumplkr Recreate a 
Source Listing from UniFLEX Compiled basic Programs. Works with 
ALL Versions of 6809 UniH.EX basic. 
UniFLEX $219 95 

LOW COST PROCRAM KITS Irom Southeast Media The following kits 
are available for FLEX, SK-DOS cm either S" or 8" Disk. 

1. BASIC TOOL-CHEST $29.95 
BLISTER.CMD: pretty printer 
UNEXREF BAS: line cross-refcrcncer 
REMPAC.BAS. SPCPAC BAS. COMPAC.BAS: 
remove superfluous code 

S'IKIP.BAS: superfluous line-numbers stnppcr 

2. FLEX, SK.DOS UriLITIES KIT $39.99 
CATS. CMD: al|iliabetically-sorted directory listing 
CATD.CMD: date-sorted directory listing 
COPYSORT.CMD: file copy, alphabetically 
COI'YDATK CMD: file copy, by dale-order 
F11-EDATE.CMD: change file creation date 

INFO.CMD (A INFOCMX.CMD): tells disk attributes A contents 
REUNK.CMD (A REUNK82) reorders fragmented free chain 
R ESQ CMD; undeletes (recovers) a deleted file 
SECIORS.CMD: show sector order in free chain 
XL.CMD: super text lister 



3. ASSEMBLERS/DISASSEMBLERS UTILITIES $39.95 
LINEFEED CMD: modularise' disassembler output 
MAI11.CMD: decimal, hex, btnaiy, octal «on versions 

A tables 

SKIP.CMD: column stripper 

4. WORD - PROCESSOR SUPPORT UTILITIES $49.95 
FUI.1-S10P.CMD: checks for capitalization 
BSTYCIT B AS (.BAC): Stylo to dot-matiix punter 
NECPR1NT.CMD: Stylo to dot-matrix piinier filter aodc 

5. UTILITIES FOR INDEXING $<9.95 

MENU. BAS: selects required program from list below 

INDEX. BAC: word index 

PHRASES.BAC: phrase index 

CONTENT.BAC: table of contents 

uNDXSORT.BAC: fast alphabetic son routine 

FORMATER.BAC; produces a 2 -column formaited index 

APPEND.BAC: append any number of flics 

CHAR BIN: line reader 
BASIC09 TOOLS consist of 21 subroutines for Basic09. 
6 were wriuen in C Language and the remainder in assembly. 
All ihe routines are compiled down to native machine code which 
makes them fast and compact. 

1. CFILL - fills a suing wiih characters 

2. DPEEK Double peck 

3. DPOKE - Double poke 

4 FPOS - Current file position 

5. KSIZE - Kile site 

6 ITRIM -- removes Icadmg spaces from a siring 

7. GETPR returns the current process ID 

8. OETOPT - gets 32 byte option section 

9. GETUSR gets ihe user ID 

10. CTIME - gets the unie 

1 1 INSERT - insert a string into another 

12. LOWER - converts a suing into lowercase 

13. READY - Checks for available Input 
U.SrTTPRIOR -■ changes a process prionty 

15. SETLSR changes the user ID 

16. SETOPT - set 32 byte opuon packet 

17. STIME -■ sets the lime 

18. SPACE — adds spaces to a siring 

19. SWAP -- swaps any two variables 

20. SYSCALL - system call 

21. UPPER -converts a siring to uppercase 

For OS-9 - S44.95 - Includes Source Code 

SOFTOOLS 

Ine following programs are included in object form for immediate 

application. PL/9 source code available for customization. 

READ-ME Complete instructions for initial set-up and operation. Can even 

be primed out wiih the included lexl processor. 
CONFIG one lime system configuration. 

CHANCE changes words, characters, etc. globally to any texi lype file. 
CLEANTXT converts text files to standard FLEX. SK-DOS riles. 
COMMON compare two text files and reports differences. 
COMPARE another check file that repons mis-matched lines. 
CONCAT similar lo FLEX, SK-DOS append but can also list files to screen. 
DOCUMENT for PLfi source files. Very useful in examining parameter 

passing aspects of procedure* 



A..IUMUI) Lrimjj 
• .05 ».S. SX'DOS 
P. FLEX, U- UairtEX 
CCa.Cafef nanawtiOS-* 

CtT . Color CompuUr PUt 




South "East 'Media 

S900 Caisandra Smith "XJ.. - Mvxjon. Tn. 3 7343 




•• Shipping •• 

A44 J* USA. tiala. tU») 
Fordan Smtmct »« S» 
Farrtts llnal AM 10% 
O CO DSblwIeiOolj 



'tlS-»lnTrio»Tjrkn<Mkfu-irnn^Miitnf<,u «H.i:X«nd llnlKLKX .nTr«tmujrlmitT»chnk.l s > «nr»i:»niulnnu.'SK»noi In Tr»».m»rfc of SurK. Saftwn Syirnni c»i«. 



60 Micro Journal 



Mfty 89 



33 



'Tc(cphane:fcl5}842 4b00 Soiltfl 'East 9rfedid 



OS-9, ilm-JuLX, TL'EX, S'K'POS 



'h-lc\: 510b(H)ti630 
'Jth\; (6151842-7W0 



ECHO echoa 10 either screen or file. 

FIND an improved find command with "pattern" matching and wildcard!. 
Veiy useful. 

HEX dumps file* in boh hex and ASCII. 

INCLUDE a file copy program lhat will accept "includes" of other disk files 

KWIC allows rotating each word, on each line to the beginning. Vciy useful 
in a sort program, etc 

LISTDIR a directoiy listing program. Not super, but better than CAT. 

MEMSORT a high-speed text file sorter. Up to 10 fields may be sorted. 
Veiy fast Veiy useful. 

MULTICOL width of page, number of columns may be specified. A 
MUST! 

PACE similar to LIST but allows for a page header, page width and depth. 
Adjust for CRT screen or printer as set up by CONFIG. A veiy smart 
print driver. Allows printer control commands. 

REMOVE a fast fde deleter. Careful, no prompts issued. Zap, and its gone! 

SCREEN a screen listing utility. Word wraps tut lo fit screen. Screen depth 
may be alteicd at run lime. 

SORT a super version of MEMSORT. Ascending/descending order, up to 10 
keys, case over-ride, tort on n" word and sort on characters if Tile is 
small enough. suns in RAM. If large file, son is constrained to n« of 
your largest disk capacity. 

TPROC a small but nice text formauer. Tins is a complete formatter and has 
functions not found in other formatters. 

TRANSLIT sow ■ file by x keyfields. Checks for duplications. Up to 10 
key files may be used. 

UMROT ATE used with KWIC this piogram reads an input file and unfolds 
it a line at a time. If the file has been sorted each word will be 
presented in sequence. 

WC a word count utility. Can count words, characters or lines 

(VOTE: this set of utilities consists of 6 5-1/4" disks or I »" disks, with 
source (PL9). 3 5-1/4" disks or I 8" disk without source. 
Complete set SPECIAL INTRO PRICE: 
5- 1/4" with source FLEX or SK-DOS . $129.95 
without source - $79 95 
8" with source - $79.95 - without source $49.95 

FULL SCREEN FORMS DISPLAY from Computer Systems Consultants - 
- TSC Extended BASIC program supports any Serial Terminal with 
Cursor Control 1 or Memory Mapped Video Displays; substantially 
extends the capabilities of the Program Designer by providing a table- 
dr.ven method of describing and using Full Screen Displays. 
FLEX, SK-OOSendCCF. UniFLEX ■ S25.O0, wish Source - tSO.OO 

SOLVE from S.E. Media - OS-9 Levels I and H only. A Symbolic Object/ 
Logic Verification e\ Examine debugger. Including inline debugging, 
disassemble and assemble. SOLVE IS THE MOST COMPLETE 
DEBUGGER we have seen for the 6809 OS-9 series) SOLVE does it 
all! With a lieh selection of monitor, assembler, disassembler, 
environmental, execution and other miscellaneous commands, SOLVE 
is the MOST POWERFULtoolkit item you can own! Yet. SOLVE is 
simple lo usel With complete documentation, a snap! Everyone who 
has ordeicd this package has raved! Sec review - 68 Micro Journal - 
December 1965 No 'blind' debugging here, full screen displays, rich 
and complete in information presented. Since review in 68 Micro 
Journal, this is our fastest mover! 

Levels I A II only ■ OS-9 S69.9S 



DISK UTILITIES 

OS-9 VDIsk from S.E. Media •■ For Uvel I only. Use the Extended 
Memory capability of your SWTPC orGunix CPU card (or similar 
formal DAT) for FAST Program Compiles, CMD execution, high speed 
inlcr-process communications (without pipe buffers). etc. - SAVE that 
System Memory. Virtual Disk size is variable in 4K increments up to 
960K. Some Assembly Requited. 

Level I OS-9 object 179.9$; with Source $1499$ 

O-F from S.E. Media - Written in BASIC09 (with Source), includes: 

REFORMAT, a BASIC09 Program lhat reformats a chosen amount of 
an OS-9 disk to FLEX, SK-DOS Format so it can be used normally by 
FLEX. SK-DOS: and FLEX, a BASIC09 Program that does the actual 
■cad or write function lo the special O-F Transfer Disk; user-friendly 
menu driven. Read the FLEX. SK-DOS Directory. Delete FLEX, 
SK-DOS Files. Copy both directions, etc. FLEX, SK-DOS users use 
Ihe special disk just like any other FLEX. SK-DOS disk 
059- 6809168000 $79.9$ 

LSORT from S.E. Media - A SORT/MERGE package for OS-9 (Level 1 A 
n only). Sons records with fixed lengths or variable lengths. Allows 
for either ascending or descending son. Sorting can be done in either 
ASCII sequence or alternate sollaling sequence. Right, left or no 
justification of data fields available. LSORT includes a full se» of 
comments and errors messages. 
OS-9 iSSOO 

HIER from S.E. Media - HIER it o modern hierarchot storage system for 
users under FLEX, SK DOS h answers the needs of those who have 
hard disk capabilities on their systems, or many files on one disk - any 
size. Using HIER a regular (any) FLEX, SK-DOS disk (8. 5- hard 
disk) can have sub directories. Uy this method the problems of 
assigning unique names lo files is less bunVmsome. Different tiles with 
Ihe exact same name may be on the same disk, as long as they are in 
different directories For Ihe Winchester user this becomes a must. Sub- 
directories ate Ihe modem day solution lhat all current large systems 
use Each directory looks to FLEX, SK-DOS like a regular (lie, 
except they have the extension '.DIR*. A full set of directory handling 
programs are included, making the operation of HIER simple and 
straightforward A special install package is included to install H1£R to 
your particular version of FLEX. SK-DOS. Some assembly required. 
Install indicates each byte or icference change needed. Typically • 6 
byte changes in source (furnished) and one assembly of HIER is all that 
is requited. No programming requited! 
FLEX - SK-DOS $79.9$ 

COPYMULT from S.E. Madia -■ Copy LARGE Disks lo several smaller 
disks. FLEX, SK-DOS utilities allow the backup of AN Y size disk 10 
any SMALLER size diskettes (Hard Disk to floppies. 8" to 5", etc.} by 
simply insening diskettes as requested by COPYMULT. No fooling 
with directory deletions, etc. COPYMULT.CMD understands normal 
"copy" syntax and keeps up with files copied by maintaining directories 
for both host and receiving disk system. Also includes BACKUP.CMD 
lo download any size "random" type file: RESTORE CMD to 
restructure copied "random" files for copying, or recopying back to the 
host system; and FREELINK.CMD as a "bonus" utility that "relinks" 
ihe free chain of floppy or hard disk, eliminating fntgmenuuion. 

Completely documented Assembly Language Source Jilts included ALL 4 
Programs (FLEX. SKD0S, 8" or $ m ) $99 $0 



A"dl»bllllJL.l"Kli 
O.OJ.t, S . SlflJOS 
F ■ H.EX. t ■ Unirtlrx 
CCS ■ CoVw Ckpimih OS-T 
CO* ■ Color CemtMUr fXEX 



" mmiL ; 



South 'East Media 

5900 Cassandra Smuh "Kji ■ rtugon, 7n. 37343 




•• Shipping •• 

Add 1% VSA. (mis. SJ.S9) 
Fortlpi SarntM AM i% 
t'aettfii Air mil Aid l*« 

Or CO A sal**** Ooij 



•Oj.t b » TUdimatm afMknwu.™ gad) Melons IT. EX and UnlKlEX on TrMjuurti at Ttonkil S r *im. Conmiluntt-'SK'OOS t> ■ f>»a»n» ra»f aXw.K Srf>-»r. lytmm Cora. 



May SS 



68 Micro Journal 



Teitpkone: (t*l?) $4'J-4t->00 



South 'East Media 

OS-9, ihu'JL'LX, fQEJCSlC'DOS 



'fa*: (MS) S42-7&I0 



COPYCAT from Liicidaia - Pascal NOT required. Allows leading TSC 
Mini-FLEX, SK-DOS, SSB-DOS68. and Digiial Reseaich CP/M Diski 
while operating under SKDOS . FLEX I.O. FI.KX 2.O. or FLEX 9-0 
with 6800 or 6809 Systems. COPYCAT will not perform miiades. but. 
between the program and the manual, you Hand a good chance of 
accomplishing a transfer. Also includes some Utilities to help out. 
Programs supplied in Modular Source Code (Assembly Language) to 
help solve unusual problems. 
FLEX. SKDOS and CCF 5" S50.00 FLEX. SK DOS 8" $65.00 

VIRTUAL TERMINAL from S.E. Media - Allows one terminal to do the 
woik of several. The user may start as many is eight tasks on one 
terminal, under VIRWAL TERMINAL and switch back and foith 
between tasks ai will. No need to cult each one; jusl jump back and 
forth. Complete with configuration program. Die best way to keep up 
with those background programs 

6809 OS-9 4 CCO - object only J49.95 

FLEX, SK-DOS DISK UTILITIES from Computer Systems Consultants - 
Eight (8) different Assembly Language (with Source Code) FLEX, 
SKDOS Utilities for eveiy FLEX. SKDOS Users Toclbox: Copy a 
File with CRC Errors; Test Disk for errors; Compare two Disks; a fas) 
Disk Backup Program; Edit Disk Sectors; Lineanzc Fnsr-Qiain on the 
Disk; print Disk Identification; and Sort and Replace the Disk Dircctoiy 
(in sotted order). ■• PLUS •• Ten XBASIC Programs including: A 
BASIC Resequenccr with EXTK As over "RF.NUM" like check for 
missing label definitions, processes Disk to Disk instead of in Mcmoiy, 
etc. Other programs Compare, Merge, or Generate Updates between 
two BASIC Programs, check BASIC Sequence Numbers, compare two 
unsequenool files, and 5 Programs for establishing a Master Diradory 
of several Disks, and sorting, selecting, updating, and printing paginated 
listings of these files. A BASIC Cross-Rcference Program, written in 
Assembly Language, which provides an X-Ref Listing of the Variables 
and Reserved Woids in TSC BASIC. XBASIC. and PRECOMPILER 
BASIC Programs. 

ALL Utilities include Source (either BASIC or A.L. Source Code), 
FLEX. SKDOS and CCF $50.00 
BASIC Utilities ONLY for UniFLEX - $30 00 

MS-DOS to FLEX Transfer Utilities to OS 9 For 68XXX and CCOS-9 
Systems Now READ • WRITE - DIR - DUMP - EXPLORE FLEX A 
MS-DOS Disk. These Utilities come with a rich set of options allowing 
the transfer of text type files tromAo FLEX A MS DOS disks. 'CoCo 
systems require the DP. Johnson SDISK utilities and OS 9 and two 
dnves of which one must be a "host" floppy. 

'CoCo Vernon S69 9S 6SXXX Version $99 95 

MISCELLANEOUS 

TABULA RASA SPREADSHEET from Compiler Systems Consultants 
TABULA RASA is similar to DESKTOP/PLAN; piovides use of 
tabular compu union schemes used for analysis of business, sales, and 
economic conditions. Menu-driven; extensive report-generation 
capabilities. Requires ISCs Extended BASIC. 

Ft£X. SK-DOS and CCF. UniFLEX. $50.00, with Source ■ $ 100.00 
DYN ACALC - Electronic Spicad Sheet for the 6809 and 68000. 
UniFLEX- 139500. FLEX. SKDOS. OS-9 and SPECIALCCF ■ $250 00 
OS-9 68K -$299 00 



FULL SCREEN INVENTORY/MRP from Computer Systems Consultants 
Use the Full Screen Inventoty System/Mateiials Requirement Planning 
for maintaining inventories. Keeps item field file in alphabetical order 
for easier inquiry. Locate and/or print records matching partial or 
comjneae item, description, vendor, or attributes; find backorder or 
below stock levels. Piinl-outs in item or vendor order. MRP capability 
for the maintenance and analysis of Hierarchical assemblies of items in 
the inventoty file. Requires TSCs Extended BASIC. 
FLEX. SKDOS and CCF. UniFLEX - $50 00. with Source - $100.00 

FULL SCREEN MAILING LIST from Computer Systems Consultants - 
The Full Screen Mailing Lin System provides a means of maintaining 
simple mailing lists. Locale all records matching on partial or complete 
name, city, slate, zip, or attributes for Listings or labels, etc. Requires 
ISCs Extended BASIC. 
FLEX. SK DOS and CCF. UniFLEX $5000. wahSource - $10000 

DIET-TRAC Forecaster from S.E. Madia •• An XBASIC program that plans 
a diet in tenns of either calor es and percentage of carbohydrates, 
proteins and fats (C P <i%) ur grams of Carbohydrate. Protein and Fat 
fuoil exchanges of each of the six basic food groups (vegetable, bread, 
meat, skim milk, fruit and fal) for a specific individual. Sex. Age. 
Height, Present Weight, Frame Size, Activity Level and Basal 
Metabolic Rale for normal individual are taken into account. Ideal 
weight and sustaining calories for any weight of the above individual 
are calculated. Provides number of days and daily calendar after weight 
goal and calorie plan is determined. 

FLEX. SKDOS -$59.95. UniFLEX ■ $89 95 



GAMES 

RAPIER -6809 Chess Progiam from S.E. Media •• Requires FLEX, 

SK-DOS and Displays on Any Type Teiminal Features: Four levels of 
play. Swap side. Pobii sawing system. Two display boards. Change 
skill level. Solve Checkmate problems in 1-2-3-4 moves. Make move 
and swap sides. Play while or blade. This Is one of tlie strongest 
CHESS programs running on any microcomputer, estimated USCF 
Rating 1600* (better than most 'club' players at higher levels) 
FLEX. SK DOS and CCF . J79.95 
NEW 

MS.DOS/FLEX Transfer Utilities For68XXX and C«Co' OS-9 Systems. 
Now Read, Write. DR. Dump and Explore FLEX 4 MS-DOS Disks. 
Supplied with a rich set of options to explore and transfer lex tiype files 
fromAo FLEX and MS-DOS disks. 'CoCo OS 9 lequires SDISK 
utilities 4 two floppy drives. 
CCO S6995 68XXX OS 9 S9U.95 

MS-DOS and Macintosh 
Software at Discounted Prices 

"Call for prices, it" II be worth the savings." 

(615) 842-4600 



FAX (615)842-7990 



A»ill»bllll)>Ut*o4> 
O>0S.*,S.sK<0OS 

r.txcx.u.u.irLcx 

<X» . Cater QaSSjaM OS.» 

CO.CkkrCanairrils 




South *Last (Media 

5900 CaismutraSmiirt tfof. ■ Mvon, In. 37343 




•• Shipping •• 

Aid J» U.SJS. (aria, fist) 
Fwrtas Su/*»» A*a5% 
sv«»ta AlracHIAaata% 
or cod. nw*a o»tj 



•QVHn T>»«tm«rt a( Mltm— r» a»d atavanrta-Tl.KX »nd I nln.KX »rtTra»martu»fT»taiifcal SmtllCjiwHjMIU'SK'OOt tuTfaCtimrt BfSMtfK SaTr— n Snto— Cara. 

6fl Mora Journal May '89 



35 











HOVE POINTER 










SPACES NEEDED 




BRA 


PRINTOEC 


* 


PRINT VALUE 


LPD_PR: 












PAGE 










MOVE.W 


DO, -(All 




SAVE DO ACROSS 


CAL 


* 








TO _PUT 












• 










MOVE.W 


IS2020,-<A7) 




1 SPACE TO 




• SIGN 
















OUTPUT 




* 










BSR 


PUTC 


SEND 


THE SPACE 




* PRINT SIGN IF 


NEEDED AND TAKE 


ABSt) 


OF VALUE. 




AODO.L 


12, AT 


ADJUST STACK 




* 










MOVE.W 


<A7)+,D0 


RETRIEVE DO 




SIGN: 










SUBQ-W 


ll,FIELD<A6) 


DECREMENT LOOP INDEX 




TST.L 


DO 


• 


IS IT 
NEGATIVE? 


CHKSIGN 


BNE 


LPD_PR 


LOOP 


IF MORE SPACES 




BPL 


SKD_SG 


* 


EXIT IF NOT 




TST.W 


SIGNF(Afi) 




SIGN NEEDED? 




MOVE.W 


I-1.SIGNFIA6) 


• 


FLAG SIGN 




BEQ 


CHKEXIT 




JUMP IF NOT 










NEEDED 




MOVE . L 


D0.D2 




SAVE DO ACROSS 


CAL 


SUBQ.W 


• 1,FIELD(A6) 


* 


TAKE AWAY 
ONE FOR SIGN 


TO _PUT 


MOVE.W 


•S202D,- IA7) 




PUSH SIGN 


■ 


NEG.L 


DO 


* 


MAKE ABS ( ) 




BSR 


PUTC 




SEND IT 




SK0_SG: 










AODQ.L 


12, A7 




ADJUST STACK 




RTS 










MOVE . L 


D2.D0 




RETRIEVE DO 




• 








CHKEXIT 












■ 










RTS 










■ PRINTDEC 










PAGE 











• COMMON DECIMAL OUTPUT ROUTINE. VALUE IS IN DO UPON 
ENTRY. 



* POSTFIX 

t 

* PRINTS ANY POSTFIX SPACES. 



PRINTDEC: 






* 










CLR.W 


01 


• OUTPUT DIGIT COUNT 


POSTFIX 








LP0_PD; 










SU8.W 


D6, FIELD (AG) 


DIGITS ALLOWED 




OIVU 


110,00 


• DIVIDE NUMBER BY 10 








- ACTUAL 




BVS 


0_FLOW 


» NUMBER TOO LARGE 




BLE 


SK1_P0 


EXIT IF NOT 




SWAP 


DO 


* GET REMAINDER IN DO.W 








NEEDED 




MOVE.W 


DO, -(A?) 


• PUSH DIGIT 


LPD_PO: 










ADOQ.W 


11,01 


• BUMP DIGIT COUNT 




MOVE.W 


l$2O20,-(A7) 


SPACE TO SEND 




CLR.W 


DO 


• GET RID OF REMAINDER 




BSR 


PUTC 


OUTPUT THE 




SWAP 


DO 


* PUT QUOTIENT IN DD.W 








SPACE 




TST.W 


DO 


• IF ZERO, ALL DONE 




ADOO.L 


12, A7 


ADJUST STACK 




BNE 


LP0_PD 


• LOOP IF NOT DONE 




SUBO.W 


»1,FIELD(A6> 


COUNT THIS 




MOVE.W 


01,06 


• USED FOR FIELD ADJUST 








SPACE 




BSR 


PREFIX 


• DO PRFIX SPACES 




BNE 


LP0_PO 


LOOP UNTIL 




SUBO.W 


11,01 * ADJUST LOOP INDEX CNTR 








DONE 


LP2_PD: 








SKl_PQ: 










AOO.W 


• $30, (All 


* MAKE DIGIT ON TOS -> 
ASCII 




RTS 
PAGE 








BSR 


PUTC 


* SEND TO OUTPUT 


X_ARG : 










ADDQ.L 


12, A7 


* EAT DIGIT FROM TOS 




MOVE . W 


13, Dl 


NUMBER OF 




DBF 


D1,LP2_PD 


» LOOP UNTIL ALL DONE 








DIGITS TO PRINT 




BSR 


POSTFIX 


* DO POSTFIX SPACES 




MOVE.W 


H, D6 


USED FDR FIELD 




BRA 


LOOP 


* EXIT TO CONTROL 








ADJUST 








PARSER 




MOVE.W 


<A2>+,D2 


TRANSFER 


0_FLOWi 














OUTPUT VALUE 




MOVE . L 


IOFLOWSTR, 


-<A7) * PUSH CONTROL 
STRING ADDR 




SWAP 


D2 


POSITION 
OUTPUT VALUE 




BSR 


PRINTFS 


• PRINT IT 




BRA 


PRINTHEX 


DO IT 




ADDQ.L 


M,A7 


• ADJUST STACK 


• 










BRA 


LOOP 


* CONTINUE 


■ 








OFLOWSTR : 






X1_ARG; 










DB 


"overflow"' ,0 




MOVE.W 


17, Dl 


NUMBER OF 




PAGE 












DIGITS TO PRINT 


* 










MOVE.W 


IB, 06 


USED FOR FIELD 


• PREFIX 












ADJUST 


» 










MOVE.L 


(A2)»,D2 


TRANSFER 


* OUTPUT ANY NEEDED PREFIX 


SPACES AND SIGN. 








OUTPUT VALUE 


* 










BRA 


PRINTHEX 


GO PRINT IT 


PREFIX: 










PAGE 








TST.W 


FIELD (Afi) 


CHECK IF FIELD NONZERO 


a 










BLE 


CHKSIGN 


IF ZERO, SKIP NEXT PART 


• PRINTHEX 







TST.W LEFTJ(A6> LEFT JUSTIFY SELECTED? 
BNE CHKSIGN BRANCH IF NOT 

SUB.W D6,FIELD(A6) DIGITS ALLOWED 

- ACTUAL 
BLE CHKSIGN BRANCH IF NO 



OUTPUTS VALUE IN D2 IN HEX. 
DIGITS TO PRINT. 



PRINTHEX: 



Dl IS NUMBER OF 



Mayes 



68 Mere Journal 







BSR 


PREFIX OUTPUT PREFIX SPACES 


V_ 


ARG: 










LPDPH: 


MOVE.L 
ROL.L 


•HEXDIGITS, AD 
14, D2 


ADDRESS OF 
TRANSLATE TABLE 
PUT MSO IN LOW 
FOUR BITS 






MOVE.L 

BSR 

ADDO.L 


(A2) ♦,- IA7) 
CURSOR 
• 4, A7 




MOVE BDTK ARGS 

AT ONCE 

POSITON THE 

CURSDR 

DRDP BOTH ARGS 




MOVE.W 


D2.D0 


PUT IN WORKING 
REGISTER 






BRA 


LOOP 




CONTINUE 
COMMANDS 




AND.M 


ISOOOF, DO 


LEAVE ONLY LOW 
4 BITS 


* 
• 














MOVE.B 


0<AD,DD.W),DD 


GET DIGIT FROM 


DEFAULT 
















TABLE 






MOVE.W 


DO,- <A7) 




PRINT CHAR AS 




MOVE.W 


D0,-(A7) 


PUT ON STACK 












IS 




BSR 


PUTC 


SEND IT 






BSR 


PUTC 








ADOQ.L 


12, A7 


DROP PARAMETER 






ADDO . L 


• 2,A7 




ADJUST STACK 




DBF 


01. LPDPH 


LOOP UNTIL 
DONE 






BRA 
PAGE 


LOOP 




DO NEXT 




BSR 


POSTFIX 


ADO TRAILING 


I 


















SPACES 


« 


CASE 


DISPATCH 


TABLE FOR PRINTF. 






BRA 


LOOP 


00 NEXT 


• 


















CONTROL CHAR 


DISPATCH: 








HEXDIGITS: 










OH 


9 




NUMBER DF 




DB 


'01234S6789ABCOEF 














VALID OPTIONS 




PAGE 










DB 


D. 'd' 


td 


PRINT SIGNED 


S_ARG: 


















DECIMAL W 




MOVE.L 


(A2I.A0 


GET STRING 






LONG 


0_ARG 


ADDRESS 








AODR FROM STACK 
















CLR.W 


D6 


GET STRLEN FOR 
FIELD ADJ 






DB 


0, 'u' 


%ti 


PRINT UNSIGNED 
DECIMAL W 


SLEN: 












LONG 


U_ARG 


ADDRESS 




TST.B 


»A0>» 


LOOK FOR 




















TERMINAL NULL 






DB 


0,'D' 


\0 


PRINT SIGNED 




BEO 


SKD_SA 


BRANCH IF 












DECIMAL L 








FOUND IT 






LONG 


D1_ARG 


ADDRESS 




AOOQ.W 


• 1.06 


COUNT THIS 




















CHAR 






DB 


0, 'U' 


%U 


PRINT UNSIGNED 




BRA 


SLEN 


LOOK AT NEXT 












DECIMAL L 








CHAR 






LONG 


U1_ARG 


ADDRESS 


SKOSA: 






















MOVE.L 


(A2) *.AD 


GET STRING 
ADOR AGAIN 






DB 


0, 'x' 


\x 


PRINT 
HEXADECIMAL W 




BSR 


PREFIX 


SEND LEADING 






LDNG 


X_ARG 


ADDRESS 








SPACES 














LPD_SA: 


TST.B 


(AD) 


END OF STRING? 






DB 


0,'X' 


%X 


PRINT 
HEXADECIMAL L 




BNE 


SK1_SA 


NO, KEEP 






LONG 


Xl^ARG 


ADDRESS 








PRINTING 
















BSR 


POSTFIX 


ALL DONE, SEND 
FINAL SPACES 






DB 


0, ' 5' 


%3 


PRINT NULL-TERM 
STRING 




BRA 


LOOP 


JUMP OUT 






LONG 


S_ARG 


ADDRESS 


SK1SA: 






















MOVE.B 


<AD> ♦, DD 


GET CHAR FROM 






DB 


0,'c' 


»c 


PRINT CHARACTER 








STRING 






LONG 


C_ARG 


ADDRESS 




MOVE.W 


DO, -(A7) 


PUT ON STACK 
















BSR 


PUTC 


AND SEND IT 






DB 


0,'v' 


Iv 


SET CURSOR TO 




ADOO.L 


12, A7 


ADJUST STACK 












X, Y 


• 


BRA 


LPD_SA 


CONTINUE 






LONG 


V_ARG 


ADDRESS 


• 












LONG 


DEFAULT 


UNKNOWN CASES 


C_ARG : 
















HANDLED HERE 




MOVE.W 


(A2) ♦ ,- (A7) 


GET ARGUMENT 
















BSR 


PUTC 


SEND LITERAL 
CHAR 






END 










ADDO.L 


»2,A7 


DROP ARGUMENT 














* 
* 


BRA 


LOOP 


NEXT COMMAND 















FOR THOSE WHO\ 



\i I h ro h.\o\\ 



68 MICRO 



JOURNAL 



TM 



68 Wero Journal 



May 'S9 



37 



Logically 




Moil of you will remember 
Bob from hit (cries of letters 
onXBASIC. If you like it or 
want more, let Bob or us 
know. We want lo give you • 
what you want! 



The Mathematical Design of Digital Control Circuits 

By: R. Jones 

Micronics Research Corp. 

33383 Lynn Ave.. Abbotifbrd, B.C. 

Canada V2S 1E2 

Copyrighted O by R. Jones A CP1 



SOLUTIONS TO TEST IS 



1 2 

'l W 

w I 

z* x •♦- y 



*y 



3 

z' 

k *■ y 

i 



k 

V 

w/«-Z 
1 



3 

* + y 
I 

wVz 



*y 
# 

W •♦ 2 



2 

3 
it. 

Pij «= w •*■ (* ♦ yXw'+z)* * x'j'CwVzYx') * w<w'*i) ■*■ &<y)r' + ^yv 
» w + vrfy'-*- v(x+yX*A.*) ♦ x'lV*}) + x'y'z'Cw'+z) 
- w ♦ vCj^ + Cx »yX w'^))^ ^((x*^ * xyCwVz)) 
■ w + vx*y' ■» vj/* ♦ vi +- xr* •♦ y*' + wi' 
•e w ■+ vx'y ' -» V + vz -» xz' -» yx' + x' 

V 

— II- 



w ■+• v •*■ z 



*TT* 



-fp 



^ 





i 2 3 ^ y 




12 3 4 






i 


2 


3 


1 


'l x o z" 


i 1 


1 x x'z yz" 


i 


* 


X 


<z 


2 


X 1 y z' 


2 


x 1 y z' 


2 


X 


1 


y+x'z 


3 


y 1 x' 


3 


xr y 1 xy 


3 


XZ 


y+*V 


1 


4- 


0*0 I / 


*» 


|yfc z' x'y' ij 








5 


,. *' / ij 




iL 11* f 1 










rV 










>« 


N 


rT. 







The final network is simpler if transfer-contacts are being used. The number of contacts remains at 6. but the number of 
reduced from 12 to 10. 



springs is 



39 



May 69 



68 Waro Journal 





I 


2 


3 


u 


5" 


6 




( 


2 




3 


d- 


5 


1 p 


X 





z' 


1 





1 


ft 


X 





i 

z 


* 


2 


X 


1 





w' 





1 

y 


2 


X 


1 


J* 


w' 


wy 


3 








1 


/ 
X 


z 




3 





*' 


1 


X 


X+ i*/ 


<t 


l' 


w' 


X 


1 








4 




W 




1 





S 


y 





z 





1 


w 


5 


J 


->' 


x+ w 





1 


6 


L° 


y 


*' 





w 


L 














i 






2 




3 


4 








i 


r- 


i 






X 




wy+jZ 


X 










2 




X 






1 




yi'+ «y' 


w 










3 


W 


J+J 


* 


J^ 


'+ 


-3' 


1 


*' 










U 


^. 


x' 






w' 




«* 


1 J 














1 








2 




3 






I 


" 




1 








X twi' 


w> 


»■ yx + 


Xx' 




2 




X 


+ 1 


„y 






1 


A 1 


*■ *y + wx 




3 


WJ + 


y* 


♦ Hi' 


yi.' + wy' + tiV 




1 


• 





F Q = x + w* + (wj *jx +xi'Xyz / + *V * «V> 

- H + wV+ <flfyi'+ wywjV wywic'-c yz/r'* yzwj'-f yxwi'+K'z'yi' 

+ j6'w/ t-nz'wr' 
.« »# •// i/' "' 

= x t w^ ♦ wx/t ♦ <y_f * y*>* -* si" 

« £ + v&' + W$cjr2 ■>■ £j[V ^ 

«K + n/x'4 w'y4 ♦• yf I 

» x «- «W ■* yy + y' 2 ' i 

= x + wy ♦ yx 
Verify fkis on a K-* 



— lh 



^ 



»-*' J^ 



[n problems of ihis son there's nothing to prevent our using Pivotal Condensation to gel us to a fourth-order matrix, and then 
switching to l-aplace's Development to extract a third-order determinant, from which a final Boolean expression may be easier to 
produce. 

Mile 21 - heading for Mile 22 

Overnight I've been thinking long and hard about whether I should give you a word-logic problem, and decided thai the going is 
tough enough right now that 1 shouldn't really add to your burden. What's that? You'd really like one? W-c-e-M ... if you 
INSIST, what else can I do? So here goes, but don't forget - you ASKED for it. Gather round, everyone, while your Uncle Bob 
unfoldsa tale of mystery for you!! 

A LOGIC PROBLEM IN THE LAND OF BINGONGO 

Once upon a time there lived a man called Joe, and on his 2 1st birthday he was given a map by his father, which had been given to 
HIM by HIS father before him, and HIS father before him, and so on for several generations. This map showed where King 
Solomon's treasure was buried in the Lost City in the heart of the jungles of Bingongo. Joe's family had always been VERY poor, 
and could NEVER raise the funds to finance an expedition to recover this treasure, and it looked as though Joe, in turn, would have 
to hand the map on to HIS son • if he should ever have one. 

Joe, however, figured that SOME treasure was better than none at all, so he invited some of his wealthier friends to finance the trip, 
in return for which be would sliare the treasure. And so this small group set off for Bingongo! 

In lime they came to the mouth of the mighty Bango-bango River, hired a large dug-out canoe and a team of paddlers, and began 
the several days' journey up-river to Bingongo itself. As the paddlers paddled rhythmically along, Joe studied the map and 
committed it to memory, as well as the instructions that came with it He knew that he had to locate a mountain with twin peaks, at 
the foot of which his jungle path would fork into two, and then he he had to take the LEFr fork. This was VERY important, for if 
he look the RIGHT fork he would eventually arrive at the village of a tribe of fierce cannibals, and would surely be eaten. This 
presented no problem to Joe, as he'd THOROUGHLY memorised everything! 



68 Micro Journal 



May '69 



39 



He knew, too, that in ihc vicinily or the fork lived two different tribes of friendly natives, the Bingo tribe and the Bongo tribe, who 
were actually SO friendly thai they had a custom of appointing an information-officer to sit at the fork in ihc road, and answer 
questions put to him by travcllcis. Each day an officer was selected at random from ihc population of cilherof ihc two tribes, so 
thcre'd be no way for a stranger to know wheihcr Ihc info-guy was a Bingo or a Bongo. Further, all questions HAD lo be framed in 
such a way that he could answer with a simple YES or NO, oihci wise no answer at all, and only ONE question per traveller (or 
group of travellers) was allowed. No pioblcm there, it seems, except for one peculiarity! Bingos would ALWAYS answer 
irulhfully, while Bongos would ALWAYS lie. Don't forget, only Bingos and Bongos could tell each oihcr apart; they looked and 
behaved identically as far as a stranger was concerned! ! 

Joe wasn't worried by all ihis, however, as he KNEW which road lo lake - Ihc one to the LEFT. Unfortunately, as they were 
paddling upsircam, the canoe hil a crocodile and overturned, lipping everyone into the river, whcie Ihcy all got drowned or cuicn by 
crocs, EXCEPT for Joe. who managed loswim lo shore, losing his map in Ihc process. There he came down with swamp-fever, 
and by ihc lime he recovered from his delirium he only vaguely icmcmbcicd ihc instructions, and wasn't at all sure which fork he 
had lo lake. 

Still, as he'd come so far, he decided lo press on to the Lost City, and eventually aimed al Ihc fork in ihc road, and came fjcc-to- 
facc with the info-fella for the day. Here was a problem indeed!! How could he find out which foik lo lake when he couldn't be 
sure whether ihc answer he received was the iruth or noi? And remember, he was allowed only ONE question, which could only be 
answered wilh a YES or a NO. 



MAN 


ROAD 


RCPLV 


PESIREJ) 


1 





1 









1 





1 








1 






Joe was lucky! He worked it out wilh those little Is and Os. But how would YOU do il if you were Joe and found yourself in this 
predicament? What question would YOU put lo the Bingo, or maybe bc's a Bongo?? This isn'i a TEST question, so just amuse 
yourselves with it, and I'll give the answer later! 

Now let's get moving, as we've dillicd and dallied enough here. No more morning bed-time slorics for a little while! Just for a 
change in menu, however, we'll leave Boolean matrices for a little while, and look instead at 

RANDOM-INPUT SEQUENTIAL CIRCUITS 

THE PRIMITIVE FLOW-TABLE 

Unlike ihc scqucniial circuits discussed earlier, where the sequence follows a prescribed pattern laid down by the specs, random- 
input networks have no set pattern laid down. Ihc specs merely detail what the ouipul conditions will be IF the inpuls happen lo 
follow a ccitain sequence or arrive al a particular combination. Here's a typical example 

"A ciicuit is lo have two inputs, XI and X2. and one output, Z. Z is to turn ON when X2 turns ON. provided XI is ON at ihc time. 
Z will turn OFF when X2 turns OFF. Only one input will change slate at a time." 

Although this is a very simple case, the problem here is thai the inputs occur in a random pattern, and we have to be certain ihal we 
coverall possible sequences for our machine lo function correctly. We do Ihis by drawing up a "primitive flow-table" wilh four 
columns headed for all possible combinations of of X 1 and X2, ihal is, 00, 01 , 11 and 10, and an output column to the right headed 
Z. An opening iow-1 is formed to get ihings going. 



XiXj 



00 


01 


II 


10 


<D 


2 


- 


3 


1 


© 


<► 


- 


1 


- 


s 


(D 


- 


2 


® 


3 


- 


6 


® 


3 


1 


® 


s 


- 



Diagram 112 



40 



May '69 



66 Micro Journal 



We'll begin in column-OO, row- 1 (which wc icfcr to as address 00- 1 ) with stable-state- 1 . circled to indicate a stable siatc, and a 
under Z to keep (rack of the corresponding output. Addicss 1 l-l, which represents a double change of variables, is forbidden to 
this row, so a "-" is inserted in this position. Our procedure is similar to that used to create an iterative prototype network, in that 
we'll complete this row, creating new row-numbers as they become necessary, and then move down to complete these new rows in 
turn, until no new rows aic called for. 

The one guiding principle is that 

"Each time wc move horizontally from a stable state, and there CAN only be one stable slate per row, wc MUST move vertically in 
the new column to a stable slate having the output condition called for. If such a stable state does not exist, then wc MUST create a 
new row-number. Fuilhcr, the output condition appearing in thcZ-column belongs only to the stable state appiopriatc to that row." 

When I say "siablc-siaic" I am, of course, rcfciring to a "circled" siatc. In row- 1, for instance, the output belongs to slablc-siatc- 
1, and NOT to the unstable slates appearing in the same row. 

COMPLETING THE TABLE 

OK then, let's commence our synthesis proccduic by moving into column-01 (that is, we'll operate X2). The specs call for no 
output as a result of this change, and as we don't have a siablc stale with 0-ouiput in this column, we'll create one by moving 
downwards to stablc-siaic-2, with aO in column-Z. Similarly, if wc consider a move to column- 10 (X I operated) instead, we're 
compelled to create a new stablc-staic-3 in (his column, again with 0-output in column-Z. This completes row- 1 , but wc now have 
two additional rows to deal wiih. 

We'll tackle row-2 fiisl, and enter a "-" in column- 10, as ihis icpresents a double-change of variables from our siablc-slatc-2. Next, 
if wc move to column-00, the output must still be 0, and as wc already have a stable slate in this column with ihc required output 
condition, namely 1, we'll make Ihc sequence return to that slate by inserting a I at address 00-2. If wc were to move to column- 1 1 
(wc must be caicful as this represents X I FOLLOWING AFIER X2) ihc output must remain at 0, forcing us to create a new 
stablc-siatc-4 for this column, with Z set to 0. 

So wc still have two rows to complete, and our first step in row-3 will be to place a"-" in column-01, after which we'll consider a 
move to column-00. There's no problem here, as wc simply return to siablc-siaic- 1 , bula move to column- II (which represents X2 
following after XI) calls for an output at last Here, the only stable stale in this column is 4, with output, so wc must create a new 
row-5 to accommodate this new condition. 

And so wc proceed in this fashion until Ihc table naturally comes to a hall in row-6, at which point, PROVIDED ALL AD- 
DRESSES HAVE AN ENTRY OF SOME KIND, we'll have been forced by ihc system of ONE STABLE STATE PER ROW io 
consider ALL possible sequences thai the inputs might follow. Without Ihis variant of our original design method we'd be unable 
to guarantee Ihis slate of affairs. 

"POWER-ON" OUTPUT STATE 

In the example just completed, wc assumed, in the absence of any instructions to the contrary, that the "power-on" output state (that 
is, ihc state of the output at (he moment of switching on our circuit) should be 0, and wc therefore set Z to in this row. Fortu- 
nately for us, a satisfactory flow-table resulted, but Ihis won't always be ihc case, as Ihc following example illustrates. 

"A scqucniial circuit has two inputs, X 1 and X2, and two outputs, Zl and Z2. The input slate X 1 .X2 = 1 1 is impossible (ic, X 1 and 
X2 can NEVER be operated simultaneously), and only one input can change state at a time. 

WhcnXl.X2 = 01 or 10 lhenZl.Z2 = 00 

When X I X2 = 00 following immediately after 1 , then Z 1 .Z2 = 1 

WhcnXI.X2 = 00 10, then ZI.Z2= 10" 



Diagram 1 1 3 



09 


0' 


to 


Z,2* 





2 


3 


00 


h 


<Z> 


- 


00 


5 


- 


a 


00 


© 


2 


s 


01 


® 


2 


3 


10 



68 Mcro Journal May '89 41 



I fwc choose thepowcr-on siablc-sialc- 1 lo have an output Zl.Z2 = 00, the primitive flow-table of Diagram 113 results. Notcihat 
once the circuit action leaves row- 1 it can NEVER return to that row unless power is switched OFF, so that it serves only as u 
power-on state, unlike our first example, where we made continuing use of this row during the sequencing of our circuit. 

Unless they're specifically called for. such additional stable states should be avoided, as they generally lead to unnecessarily 
complicated circuits. 

REDUNDANT STABLE STATES 

Normally, if you slick strictly to the procedure set out, (here won't be any redundant stable states, but in case you didn't completely 
follow the lules or if you come across a primitive flow-table designed by someone following a different method (and there arc otticr 
methods) you'll need to know how to recognise and eliminate these undesired stable states from the flow-table. 

The equivalence, or otherwise, of two rows in a primitive flow-table is based on the same set of rules that we applied to iterative 
prototype charts, and can be re-stated for random-input flow-tables as follows 

"Provided the output stales arc compatible, that is, the rows belong to the same or an equivalent output group, two stable suites arc 
equivalent and can be combined into one row (taking the row-number of the lower of the siablc-sialc-numbcrs) if they meet the 
following conditions 

(a) They occur in the same column, and 

(b) The UNSTABLE states in both rows are identical, or arc themselves 
equivalent or pseudo-equivalent." 



FORMING A "COMBINED" FLOW-TABLE 
XtXa 
00 01 II 10 *Za 



© 


2-3 


00 


1 


© <► - 


10 


5 


- «► ® 


1 1 


- 


t © 3 


01 


© 


7-3 


00 


5 


® « - 


1 1 


i 


a * - 


10 




Diagram 1 14 





(?) 



00 


01 


1 1 


10 


£<Za 


Q 


2 


- 


3 


00 


i 


0> 


<f 


- 


10 


i 


- 


4 


Q> 


It 


- 


6 


© 


3 


01 


i 


® 


«• 


- 


1 1 



*>> 



In the primitive flow-table of Diagram 1 14a, stable-stales 2 and 7 are equivalent, as ihcy occur in the same column-01, the output 
states are in the same group-10, and the unstable states arc identical. Stable-states 1 and S, on the other hand, depend for their 
equivalence on the equivalence of siablc-stalcs 2 and 7, and as we've already established the equivalence of this pair, it follows that 
1 and S arc also equivalent. 

We may therefore combine rows I and 5 under the new row-number 1 , and rows 2 and 7 under the new number 2, lo produce the 
"combined" flow-table of Diagram 1 14b. 

00 01 11 )0 z.Zj 






2 


- 


5 


5 


© 


w 


- 


5 


- 


k 


(3) 


- 


(, 


© 


3 


O 


7 


- 


3 


5 


® 


<* 


- 


i 


9 


If 


- 



Diagram 1 1 S 



42 



Mcy '89 



69 Micro Journal 



In the primitive (low-table of Diagram 1 15. the equivalence of stable slates 1 and S depends on the equivalence of stable states 2 
and 7. In turn, the equivalence of states 2 and 7 depends on the equivalence of states I and S. Here we've come full circle to our 
stalling point without meeting up with any non-equivalence, so each of these pail's of stable stales can be combined to reduce the 
primitive flow-table to five rows. 

You should be VERY careful to disiinguish between COMBINING rows, which still leaves only ONE stable stale per row, from 
MERGING of rows in our normal flow-iablc, where it's possible lo have more than one stable state in a row. 

The interdependence of equivalences just discussed can be continued over many rows, provided that the chain docs not end in a 
definite non-cqui valence. Put in another way, it can be said that 

"Two stable slates occuiring in the same column and having the same, or equivalent, output conditions can be made equivalent, 
unless the equivalence depends on a non-equivalence." 

Sounds a Utile complicated, but if you read it slowly it should be fairly clear! 

A SYSTEMATIC METHOD FOR COMBINING ROWS 



X.Xa 

DO 01 I 



tO iZ 3 



Q i u 1 


00 


6 © S 3 


II 


l 7 <♦ O 


01 


9 2 © 8 


10 


1 10 © 3 


10 


© 7 J It 


00 


1 © 12 3 


II 


\ 7 i» © 


II 


© 2 a u 


00 


<? © k n 


It 


n to 13 dD 


01 


Diagram 116 1 2 (t^ 8 


10 



In a complicated flow-table, the various equivalences and non-equivalences arc often extremely difficult to establish, and a 
systematic approach is the only solution. Consider ihc primitive flow-table of Diagram 1 16. In column-00, 1, 6 and 9 arc possible 
equivalences because ihcy belong lo ihc same output group. In column-01, 2, 7 and IOarc possible. In column-11,4, 5 and 12 arc 
possible equivalences, while in column- 10 only 3 and 1 1 arc possible, 3 and 8. and 8 and 1 1 being immediately established as non- 
cquivalcnccs. Bear in mind that all these arc just POSSIBILITIES, as it still has to be determined whether they arc in fact equiva- 
lences. 

The systematic approach to this problem can be applied with equal success lo ihc establishing of equivalences in the tows of an 
iterative prototype table, and should definitely be used whenever a complicated table appears. 







l-6|l-4|6-q|2-7|2-lo}7-lo|*.-5|*-ia|r-l?|3-ll 


X 


1-6 


-..;--j--;./. J ^-„L__i. J l 

! i ! v i ' ' 

. ■ 1 * "" ■ , ' . ' 1 

< < '. '• ! ! S '< "• i? I" 
i- i ' .- l~ .J-.*.-! j — Y. 1 




\-<i 


X 


b-<* 


X 


1-7 


X 


3.-10 




7-10 


■ i > ~ * 

1 ' J • s 
r -----t — * 1 * \ • 

^4-.------^-!— -i-i-— ----- i--- 

~r4?H-~KT+-t-K- 

. ...» L.X. 1 K-, .,. J.-.-.) 4 r 

y ! s ; : : • i S ! 


X 


t*-S 




«*-i2 


X 


S--I3 




^-il 


*V « 1 i ! ! i ! I/I 1 •! 



Diagram 117 



68 Micro Journal 



May '89 



43 



A lable is first drawn up, as in Diagram 117, with the columns headed with all possible equivalence-PAIRS, and a set of rows with 
identical pair labels. Now let's start in column 1-6, and consider the equivalence of stable states 1 and 6. Looking at rows 1 and 6 
in the primitive flow-table, we see that they depend for their equivalence on the equivalence of rows 2 and 7, 4 and 5, and 3 and 1 1, 
and so. in column 1-6 of the equivalence-table, we place a lick in the ROWS which bear these number-pairs, that is, 2-7, 4-5 and 3- 
11. And so on for each of the olher columns. 

I'd like to mention column 4-5, where the equivalence of these two states depends not only on the possible equivalence of 1-9 and 
2-10, but also on the known non-equivalence of 3-8. This necessitates adding another row for 3-8 below the rest of the table, 
separated fiom it by a solid line, and with a tick in column 4-5. When we come to completing column 5- 12, we find that we have 
to make use of this row once more. 

Now for the easy pail! Because columns 4-5 and 5-12 depend for iheir equivalence on a known non-equivalence, THEY TOO 
MUST BE NON-EQUIVALENT. We iccord this fact by enlering one diagonal of a small V* to the lefl of ROWS 4-5 and 5-12. 
Scanning along row 4-5, we find that 1-6 and 2-10 depend on this new non-equivalence, and therefore cannot be equivalent either. 
This fact is recorded by entering one diagonal of an "x" to the left of rows 1-6 and 2- 10, and at the same time completing the "x" of 
row 4-5 to signify that we've checked out this row. 

Having disposed of row 4-5, let's do the same thing with row 5-12. Studying ROW 5-12, we are forced to place half-an-x in rows 
6-9 and 2-7, as if s these columns which depend on row 5-12 for THEIR equivalence, and also complete the "x" in row 5- 12, which 
means "this row completed". 

Now, picking half-x rows in sequence, we see that in row 1-6 only 2-7 depends on it, and as this row already has a half-x. we 
simply make 1-6 into a completc-x. Similar remarks apply to row 6-9 and the half-x already in row 2-10, so 6-9 ends up with a 
complete-x. Row 2-7 has the two columns 1-6 and 6-9 dependent on it, but these two rows have already been checked out with a 
complete-x, so we can complete this row's "x". Finally a similar situation exists with row 4-5. 

When all is done we have the exact lable of Diagram 117, with rows 1-9. 7-10. 4- 12 and 3-11 the only rows NOT marked with an 
"x". These four pairs have thus been established as definite equivalences, and may therefore be combined into four singles, and the 
primitive flow-iable reduced to eight rows! 

OPTIONAL OUTPUT STATES 

Sometimes maximum stable slate reduction demands that a particular stable-slate be made equivalent to two or more other stable- 
states, which arc themselves non-equivalent. This very often applies when optional OUTPUT-stales aie specified, as in Ihe 
primitive flow-table of Diagram 1 18a. Here stable-states 4 and 6 are non-equivalent (they belong to different output groups), 
theicby making stable-states 5 and 7 non-equivalent. 

*»Xa XiXa 

00 Ol 10 



© 


2 


3 


1 


® 


J 


1 


3 


§ 


1 


® 


5 


1 


6 


® 


1 


© 


7 I 


1 


h 


® 



£ 




00 


01 


10 







© 


% 


% 










\ 


® 


s 





1 




1 


6 


(S) 


1 





w 


1 


© 


7 


1 


i 


Diagram 


1 


*» 


<Z> 


1 


i 

i 


118 









00 



Let's deck out stable-state-2, with a phi output, against stable-state-4. We sae that they can be made equivalent if 3 and 5 arc 
equivalent, which in lum depends on the equivalence of 2 and 6, which depends on 3 and 7, and finally on 2 and 4. So we've come 
full-ciicle, without meeting up with a single non-equivalence along the way. Notice lhat in this loop we've checked out not only 
the original 2-4 pair, but also the 2-6 pair, so stable-state-2 is equivalent to both 4 and 6, though, as we observed earlier, 4 and 6 aie 
not themselves equivalent! In the same way, slable-state-3 is equivalent to both 5 and 7, although THEY arc not equivalent. 

The combined flow-table for these conditions is shown in Diagram 1 18b, from which we see that the UNstable slates 2 and 3 in the 
first row can each be replaced by either of two entries, though at Ihis stage it's not possible to say which choice will lead to the 
"best" circuit, and we'd therefore have to design four different ones and then take our pick. 



44 May '69 66 Mero Journal 



An excellent guide, Ihough I've not done enough tables to be sure that it'll ALWAYS work (it hasn't let me down yet!) is to look 
Tor another row in the same output gioup, and make the numbers agree with this row. In this example, row-2, stable-state-4, is 
entirely compatible, and my choice would therefore be to make row-1 read 1 4 3. 

We'll complete this study next lime, but in the meantime I'll give you just two problems to sec whether you've got all this tucked 
away in your personal RAM. You've also got the Bingongo problem to think about till then. Here then is 

TEST SIXTEEN-A 

1 . A sequential circuit has two inputs, X 1 and X2, representing, in binary, the decimal numbers to 3 inclusive, and one output. Z. 
If a change in input INCREASES the represented number by one, the output is to mm ON, if not already ON. If an input change 
DECREASES the represented number by one, the output is to change state. Any other input change will leave the output un- 
changed. All input changes are possible. Take careful note that the specs refer to an input change of one unit only, that is, from 1- 
2 or 2-3 or 1-0. etc. Develop a primitive flow-table, and combine rows if possible. 

2. Refer to the problem of Diagram 1 13 in our discussion of "power-on" output states, and then develop the primitive flow-tables 
if the initial "power-on" output state is (i) 01 (ii) 1 1 and (iii) 10. 

On the next leg of our journey, we'll discover how to "merge" (as distinct from "combine") the combined flow-table, and then how 
to convert this table to our standard form, so we can complete the design process and produce a finished circuit-diagram. Sec you 
then! 

... End of Mile 2 1 . Now at marker Mile-22. 



FOR THOSE WW 



$1,\ ) TO KNOW 



68 MICRO 
JOURNAL 



TM 



68 Mtcro Journal 



May 89 



45 




By: All of us 



'Contribute tything ■ Tqtc\ 9{ptfunj}', DMW '86 



Microware Systems Corporation 



David F. Davis 
515/224-1929 

Davis-Marrin Communications 
Ken Marrin 
6 19/72 1-5259 

OS-9 REAL-TIME 
OPERATING SYSTEM AVAILABLE FOR 
68030, 68070 AND MVME 147 CPU BOARD 

DES MOINES, Iowa. Buscon/89-Wcsl — Microware Systems 
Corporation announces the availability of the OS-9 Operating 
System and development environment for Signctics' 68070 
microcontroller. Motorola 68030 microprocessor and MVME 147 
single-board computer. 

Microware will provide a specially tailored version of the OS-9 
Kernel to support the 84-pin SCC68070 microcontroller, which 
consists of a 68000 compatible processor, memory management 
unit, U ART, two-channel DMA controller, two timers and a clock. 
This version ofOS-9 will include an assembler, high-level C com- 
piler, 'zlHu'zlOMACS screen editor and both ROM and symbolic 
assembly language debuggers, plus drivers and file managers to 
suppoit all of the 68070's on-chip peripherals. By combining the 
appropriate OS-9 system modules with user-developed applica- 
tions modules, designers can configure ROM-based 68070/OS-9 
systems using less than 32Kbylcs of ROM and l28Kbytcs of 
RAM. 

Microware is also providing a customized version of OS-9 to 
suppoit the 68030. This kernel supports the 68030's on-chip mem- 
ory management and cache, as well as an expanded external cache, 
ltalso includes a MATH trap module that supports both hardware 
(MC6888 1 or MC68882) and software Coating point arithmetic. 

To support the 68030's memory management unit, OS-9 also in- 
cludesa System Security Module (SSM). The SSM uses a system- 
wide permission scheme to limit RAM accesses for user-state 



processes. When a process attempts to access memory for which 
it does not have access permission, OS-9 generates a recoverable 
bus error. 

The first 68030-based CPU board that Microware is suppoiting is 
Molorola's68030-bascdMVME 147 single-board computer. OS- 
9 for the MVME 147 includes the OS-9 Kernel, assembler, high- 
level language compilers (C and BASIC), V.IHu'zlOMACS screen 
editor and both ROM and symbolic assembly language debuggers. 
The Motorola MVME 147 also features on-board Eiltcmct, SCSI 
and 68881/68882 floating point. Through its iile managers, this 
optimized version of the OS-9 Kernel supports all of the MVME 
I47's peripheral devices. 

To make OS-9 available to its MVME 147 customers, Schwcbcr 
Election ics will distribute OS-9 with the MVME 147 asa bundled 
solution. This will mark ihc first availability of a bundled real-time 
OS for Motorola hardware. 

Both the MVME 147 and Signctics' Microcorc boards can be used 
asdcvclopmcni platforms, or integrated with Micio ware's popular 
UniBridgc and PCBridgc cioss-devclopmcnt packages. These 
packages provide a comprehensive development environment for 
distributed programming/supervisory control. 

CPU BOARDS WITH INTEGRATED LAN 

HARDWARE ENABLES 680X0-BASED HOST 

CPU BOARD TO RUN TCP/IP WITHOUT AN 

EXTERNAL COMMUNICATIONS 

CONTROLLER BOARD 

Des Moines, Iowa. Uniforum, 1989 — Microware announces a 
network communications software package that enables a host 
CPU board with integrated LAN hardware (Such as Motorola's 
MVMEI47, which includes the LANCE Ethernet chip set) to run 
the TCP/IP protocol without requiring an external communica- 
tions controller board. Known as the OS-9/ Internet Support 
Package (OS-9 /ISP), this ROMablc software enables any OS-9 
based 680X0 host to communicate with any other system (such as 



46 



May 89 



68 Micro Journal 



Unix. VMS, of DOS based syslcms) running the TCP/IP protocol. 

Initially. OS-9/1SP will provide drivers for the LANCE Elhemel 
chip set. However, the software's device independence makes it 
adaptable to a variety of hardwaic configurations, from ArcNct 
and SLOC, to point-to-point serial links. 

OS-9/ISP confhms fully wilh the DARPA Transmission Control 
Protocol/Internet Protocol (TCP/IP). It also supports the DARPA 
specified File Transfer Protocol (FTP) and TELNET (viitual 
network terminal, also known as remote login). These protocols 
not only enable OS-9 users to access oihcr nodes on the network, 
butcnablc other nodes to access an OS-9/ISP system as a server. 

An OS-9 BSD 4.3 Unix socket-style communications interface 
known as "sockman" provides the link between application pro- 
grams and the TCP/IP protocol. Sockman is a superset of the 
enpman socket manager that Micro ware provides wilh iis Ethernet 
Support Package (A TCP/IP package (hat runs on dedicated 
communications controller boards such as the one available from 
CMC). 

As a result, applications written for dedicated communications 
controllers under enpman will run without modification on a host 
CPU board under sockman. Address family protocols (Internet, 
for example) are implemented by sockman as subroutine modules. 
This modular design enables designers 10 easily add and dynami- 
cally load new addiess families such as X.2S. 

The Interface Manager, or "ifman", provides ihe socket protocol 
modules for the hardware-independent layer that handles system 
configuration and diagnostics. This package enables the system 
configuration (such as changing a station's address, or adding/de- 
leting stations) to be modified dynamically without requiring 
driver recompilalion. Because it is hardware independent, Ihis 
layer enables a system to support multiple nctwoik in tei faces, such 
as Ethernet, ArcNct. SLDC, and point-to-point serial links. 

OS-9/ISP is available pre- installed and pre-configured for Motor- 
ola's MVME147. It is distributed in object code form on diskette 
and includes file managers (sockman, ifman, and pkman), the 
Internet protocol handler modules, network device drivers and 
descriptors, configuiaiion modules, utility programs, and socket 
programming interface libraries. 

To simplify the porting cffoit for system integrators who wish to 
portOS-9/lSP to thcirown boards, Microware provides an OS-9/ 
ISP Portpak. Distributed on cither diskette or tape, Ponpak 
provides the OS-9/1SP object code modules, as well as ihe source 
code for a sample driver and documentation that simplifies the 
adaptation and development of drivers for a particular link-level 
network interface. 

The cost for OS-9/1SP running on a single node OS-9/680XO 
based system is $650.00. Quantity discounts are available. 



OS-9 SUPPORTS BACKPLANE-BASED 
MULTIPROCESSING OVER VME BUS 

DES MOINES, Iowa. Microware Syslcms Corporation an- 
nounces an extension to its Network File System lhal supports 
multiprocessing via RS232C cable, local area networks such as 
Arcnct (Ethernet drivers will be available soon) and Ihe VMEbus 
system backplane. Known as OS-9/NET, this software provides a 
logical extension to the OS-9 I/O system, enabling users to access 
files and devices resident on remote systems as if they arc resident 
on the user's own system. 

OS-9/NET works wilh any pcriphcial device, including other 
CPU's, primers, and mass storage devices. It supports all of Ihe 
functions offered in the standard OS-9 disk file manager, such as 
dealing and deleting files and directories, and changing woiking 
directories. 

Files and devices are accessed or "opened" from a remote system 
by adding a logical system name to a standard OS-9 pathlisL For 
example, to list the file "read. me" resident on ihe remote system 
mwarel , the user would write: 

list /nei/mware/hO/rcadme. 

The network file managers on the local and remote nodes automati- 
cally and transparently convert all input/outp ut requests to the nec- 
essary internal logical and physical network protocols. OS-9/NET 
supports five network utility piograms: 

chp Change Processor command. CHP starts a remote shell 
on a specified node. 

mlsmon Multiple Time-Sharing Monitor. Mismon supervises 
idle terminals and initiates the login sequence for time 
sharing applications. 

ndir Network Directory command.Ndir checks and displays 
the status of network stations. 

nmon Network Monitor. Nmonallowsstalionstocntcrorlcavc 
the network and handles network permissions. 

nwatch Network Watchdog. Nwatch monitors the reliability of 
network stations. 

An additional level of file security positively controls network 
access to files on each node. 

OS-9/NET is available immediately. 

For more information, please contact 

Microware Systems Coip., 

1900 N.W.lHth St.. Des Moines. Iowa 50322. Phone (5 15) 224- 

1929. 

Microware offices are located in Des Moines, Iowa; Sania Clara, 

California; Southhampton, UK; and Tokyo, Japan, wilh field rep 

rcscntatives worldwide. 



68 Mcro Journal 



May 89 



47 



CM) 



MOTOROLA INC 



Microprocessor F'rnrlOMs Group 
R501 William Cannon l>nvr> West 
Auslirv T*x<w 7873S-8^<»fi 



crnVTACT* 

Sharou Dawtr 

Cunningham Oaonwacatiijn. Int 

< 408) 912 0400 

MOTOROLA LNVULS 



Mcnprola lac. 
(512)991-2339 



ARCHnrcrvRE 



040 Rant* Stakes tn MjL-roproceuof Ranle 
fituki One Milbor Tranuttar Bamer 
llewkci PKtud Ftntio Fjidorie Chip 



AUSTIN. Texts. Mirth 2t, 1989— Monaolt's Mknwnia Prndi«* Cboup today railed, the 
taka in the aacjnproa uor market by unveiling srcrafeactuml faruru erf its 32-bit 680*0 (040) . 
TV new chip, ibe lifts) mernher erf Mocrola's 60000 crocropRnM* family, u ihe First to 
uKxvponB more than 1.2 oalllon truutmi on ■ single piece erf tibcon. making U ihe mast 
knar gran*) mumwa ia In lite indusa-y. 

This intcgnuion. erupted with the chip's multiple caentkxi uaia. will rsabfatb the 040 as the 
finest eranptet .buincticn set vaavgnxaxw ever, on performing all 32-bt t cranpenn g architecture] 
end many RISC prodicts. !c is also the first ccnwnisKVUi (ncnfisaw to ineitxk (tanVic powt on 
board. Addtbonal D40fmiurr^pcrformrrfix . pnrog irid svaiWift ty wiU br rjascfe pubik later this 
year 

The 6S040 tenreaenD idrum leap m 68000 tachnDlrwj. far grosser than the increase from the 
61020 as Ae6flZSL hs edumn liuFfavaao mcec than five major uaus on chip, all erf which 
J y to deliver very high fajfuuaux. The naua fesusre* erf ihe 040 nadufe m 
itgcr mat • OpMuig- point ana. a asEsnory aauugExnE)* mil and Septra* cachet for data aad 

tn a related Mauancin Hewlett Packard said that u wjj ocDTpcnx the 0*0 in lop-of Hhe t*ne 
workstations, making u uV fire company toonfiVrse theoewceop Hewlett -P«±ant die world's 
attend Urjwt manu(am»w erf wurlctlafjcaiS, ab» said that u will prorate 040 ct-«icwmenJ mob 

TV 040 maintain* 100 percent cocnpaobiUty wu* Mc*vr^ * 68000 family. mbenoog a K taUnn 
software bju?and providing an upgrade path fori SlOgbdlum ruidwtrc base. Thtsc»rT«aDbibty 
allow* more ilian 1.000 conpanfca u> wcorpcnie the new chip Actrtdin g to tftfoCarp, a marfcej 
research firm baaed in Santa Qern, Calif,, the 44000 arc hifecxun; powers more than 63 p^rtAa erf all 
computer system* priced from $ 1 2^)00 so $300 000. 

"The 0*0 Ji ia architecture thai our cntnpetf tors wtO be herd preuaJ to match." jam! Jack 
W Browne. dVorior erf marketing of Moajm la' i Mcxoprtanur Pmduris Crtup (Austin. 
Texu), "Coupled wlihour vast load tn 32- Ml software, ihe 040 cxpandj the 68000 family's 
Ckvoinance in advanced personal compvW, woHutathn aod nuilbiuo atarkeefc." 

The 0*0' i arch! exrure ismaxicniacd for a high depot of parallel occnecm Otrough the use 
erf the five execvtkmunhs. multiple pipelines and Internal buses as well u ■ PuU fUrvard- style 
trtbiiecruic. Each of the five units on the chip is described below. 

Integer Unit: A major redesign with 100 percvat software compatibility 

TV t^*rge r V" [ "? a ftocmtm w*mi th* Inan^Mi^i* ,*. m ptrym Tbe 0*0*i urtcga 
umrmeitannTti the 6gOX> uisxrucrjkjtf set. «ik»wbi git n aeceu d^ world 'i bB^ai 32-bii 
btOwvc base. While antrtHning 100 pacczm rrrrawhhJhiy with the 88000 facaDy. the 040 
msrpT omtindodes feature* that agntneand y aaoesae perfcaannaQE byn 



Memory Managemrni Unil: Eslending Motorola's lend in Unis" 

Memory inaAagerncra u arjuctal (easoc Ice running targe opcnBtDg synotts such as Unit 

Motorola '■ 68000 family drartinaira the Uaix market 

TTc 0*0'i ocxhip paged tnrmory oBAagemEn uainspporo both deromnd -paged wual 

nciui) and real time operaong sYoenn. The MMU cmcacnt two *fVi<ndmi addrca oanslaun 
i lATOdut cunuitaeecaal y enaiilac both dan and c 



Caches: Feeding the machine 

Caches provide very hlgh-tpeed teropcrary auxige of urfamumai txxm nxoulyused by die 
prcertMw. The y are etponally upponam whh lugh performance manytanmn wbcte cagcvoon 
units demand a ccwutan t now of iaJbrmaooL Mcanmls's earlier 68020 and 68030 anuutaiacBus 
pioneered the uk crfon<clujp caches u reduce delays and oasts aorxiansl wkh Urge off -chip i neitaw y 

The 0*0 tnlcgrates lirge acpantr caches (or t«orw=o>au aod data. These caches arc the oaosi 
crtkieni ofTenngi in the industry and «4>p)y the caeca) boo units widi a amam flow of u 



Multfprocesaor Innovation: Delivering supercomputer performance 

Mulriproceasin g allows syiusu id be ooaflgured aroond a series of n&caoprocexcn Unhed 
logether to provide high lysleni performance. Tlie 0*0 also offers cvenl new fcjraa thai ■uppurt 
inylbproceaalnj dexlgm. It iodude* a hardware rraxbaoijaxi called the rocop aaorsJo thai asoniton 
the use of data w a audbprcexjKar amty.ensunng that eaaa prooasr uses ihe law*. asTcd venioD 
erf data. Soorjpmg main tains "cache cohcreecy ,** thus prevcsuig povzuial ckaaepsusQca that can 
result when several prncesDi share and raacapulatc the same data. 

Mc«nRa^'s$Z9bilbcB Sesniuaasucvr ProihEn Sccior fPhDcoh. Antt which mdodea the 
Mlooprrmanr prodorni Qronp (Aosoin, TcxaaX b a pan erf Momroas Inc The aanpanjr u the 
laryot and braaaas* <»pph«T of Bna&aar) tn North Aapkas, am» a basa^aj portfbho of more 
ih«».000dcvict» 

PRELIMINARY 68040 BLOCK DIAGRAM 















- 


B 
U 

s 

1 

N 
T 
R 


L 

E 
B 








- 




INSTRUCTION 
CACHE 


FLOATING 

mi nt 


1 


[NTEOER 

UNIT 






<i 






MMV 


















r 














DATA 
CACHE 

























Floahng'Polnt Unit: 10 61U of proceahwg power 

F^«ng -poim uotti acrxanac o an Aenwasc al tx«s;aiMaai i far appuq 
and hrauaaal anal ysu. Today, moat AcaDeaj •point pnscefiai g reajul 

TV OWtedudathucafMh^rycmdMpby (ix»yir»g kshuefcr una wuh a powerftJ gO-fart 
-Ocaong-pc«K:pnicecaar. The fVaaeing- point una tflDorporaD chatsaasd hardware ttat dteectJ y 
supporo fkssanj - point bumaaceu to bxtcsub: perf arraanoc. The (Um6a£- poim tma ahw 
con/ohm to XBER Standard 754 and oanoiaiin oommnihiKty with Morareaa's 69882 (882) 
noaoftg-poiM math o ap r o Oe aa nT , often udliaad with tpeeahen of the 68000 family. 



i*tijt--inc the tune nc«ckd to cioculc wsmxtKiris TV 0*0 indudes an tniernal bus i 
integer unit so aomsa «■■*—■ *^^ and dam etrnwh a nrem ry . 

FVanng- Pninr Unit — The 040's an-ehtp Qome^ag-psia* asik ofTcn 80 Uot of p 
The unit incorporate* *■<■—' land waw. tfaai dreary suppora fk*rjng -point OMuuuknai The 04O's 
f^^feg-seahri vast osnonsa to BEE ^aahvd 754 and bt eeanriaiib k win MoaoroU'i ot84Q (S82) 
floeelasj -point mam mpntmm ccanraady used waft ndn of Ote 66000 fsmay. 



managemenco 
arm* TheMM 



I fVDpQRf both 

istighdyc 



coupled win die 



Memory Managernert UraiCMMU) — The f 
iemtn4 paged vtruad < 

<"U0'ior chiptsavucocc) anddaac 

Cnehea — The 040 I 
so tupply the Chip's e 

Uke tin 030. ihe 0*0 ofTen a fuli Han.vo-«iyla archueciicT. This archi ordure ecaqned with the chip's 
caecunon unht, multiple ptpEiuas and bucmal bases enables the 040 to deliver a Ugh degree of perfcernance 



46 



May '89 



68 Micro Journal 



Sriernez Daver 

Cunningham Qotnrnurucafion. tac. 

(408)9*2.0*00 

Didl MtlkfcMB 

(201) 221- 2694 



Dew Monty 
Moswuti 
(512) 891 2839 

Midied Carey 

88ope n Cw WTO urn ltd 

(JM) 682-iTOJ 



motorola's nam bcs endorsed as 

DEVELOPMENT PLATFORM FOR UNIX SYSTEM V RELEASE 4/AB1 
Current 88000 Software To Run on Future Unix Systan Vcrokro 

UnlFo/urn, Su Frandseo, Feb. 28. 1989 — Motorola ind AT&T today announced IhM 
ihe M000 Binary Compatibility Standard (BCS) will be used as «n early or-re lc«xissn> platform 
(or AT&T's Unix® Syrato V.4 Application Binary Interfaci (ABI). This ensures ihst cuntm 
software for ihe 88000 will run on future versxrai of Unix System V without reoompilebon. 

In April 1988, Motored six) AT&T signed an icninM to (fcvrion an AB1 for cSe 
86000 RISC aithiinaum AT&T iABI only appUom ihe envtranmoi! for Unix Sysarm 
V.4. To establish standards for Unit System V.32. Motored. AT&T tad the 88ooen 
CorariiSD Ltd. worked closely together to ovale Hie 88000 BCS that allows let software 
oanptdblHiy ou 88000 based systems. ThU BCS is the flrtt and only docuramied lei of 
ealibt. cunibDxb for Unix System V.3.2 and it a stepping stone to the ABI for Unix System 
V.4. The 88000 BCS inrorponsct ideci feirurei of die ABI euntndy under ocvelopmem 
allowing for auptaoo of software from System V.3 2 to System V.4. AT&T and Motnroli 
art developing an ABI cocnplUm version of Unix System V 4 for the 81000 which will he 
available to the industry in late 1989. 

Last week, more than 30 companies announced Ihe development of software based 
on the 88000 BCS including Frame Technology. Informix and WordPerfect. Motoiok 
will begin shipment of development platforms ha sed on Ihe 88000 BCS in Apaii 

"Our efforts with Motorola to develop an ABI for System V.4 vctsyjq for the BB00O 
crvW n the urcngih of Unix Syncm v in ihe marketplace. " said Mike DeFano, ckrec tor of 
Unix System Software at ATAT (Momiiowo. N.J.). "Our work with Motorola has brought 
us closer to establishing a standard operating system orvurxunent for open systems." 

"Since the introduction of ihe 88000. we have adopted the sosicgy of developing 
software standards for our RISC aichitcciure." laid Murray Goid/raui. general manager and 
senior vice president of Motorola's Muurjuusac* Products Croup (Austin. Texas) 
'Today's arttrunrcrneni with AT&T clearly validates our software scurfy and crmenis our 
leadership position in the RISC marVet-" 

MmztjIb's 18000 RISC arcTdtrxiure is Ihe most ompirtr solution oo the market with a 
floating point and integer unit on one chip 188 100} and cache and ovstssty management on a 
•mono (88200). Motorola has the most hardware produtta based on a RISC prccoaur on 
the market today including systems from Data General. Evens and Sanyo/toon. In the next 
few months, additional D^OOOrelitedarnsuraBrcmi will be made 



In addition to the 1 6K x 4 in PDIF, Motorola la alao 
introducing a 4K x 4 feat SRAM with very faat output enable. 
Thia device la alao ideal for 32-blt Microprocessor ayatetxs 
with aeparate cacne memory and ia eapeclally coat affective 
in thoae applications where 4K of memory depth will suffice. 
The 4K x 4 device cooes In a 24 lead. 300 mill small outline J- 
lead (SOJ1 package and alio ia available In a 22 lead. 300 rail 
PDtP. The part numbera are MCM6210J2S/3S for SOJ and 

KCM6270P25/35 for PBIP. Output enable acceaa tltae la 12 rra for 
the 25 ns part and 14 na for the 35 na part. 

Both the HCM6210 and HCM6290 are designed and manufactured with 
Motorola's high performance aillcon-gate CMOS technology . The 
die for theae devlcea ere fabricated in Austin, Texas at the 
anise facility where Motorola alao fabricates their 32-blt 
MC68020 and HC68030 Blcroproceaaora . 

The full line-up of Motorola x4 faat SFtAHs with very faat 
output enable ia aa followa : 











ADDRESS/ 


OUTPUT 




100 








Chip enable 


ENABLE 




PIECE 


PART MttMRER 


oar. 




SPEtn 


S?££G 


AVAtl. 


pttirr. 


MCKS270J25 


4K 


X 


4 


25 


MS 


12 


NS 


SOU 


$6.90 


HCMS210J35 


4K 


X 


4 


35 


NS 


14 


HS 


NOW 


$5.16 


MCM6210P2S 


4K 


X 


4 


25 


NS 


12 


OS 


NOW 


$6.36 


MCM62'0P3S 


4K 


X 


4 


35 


MS 


14 


NS 


NOW 


$4.56 


MCM6290J25 


16K 


X 


4 


25 


NS 


12 


NS 


NOW 


$11.33 


MCM6290J30 


16K 


X 


4 


30 


NS 


15 


NS 


NOW 


$15. 18 


MCM6290J3S 


1«K 


X 


4 


35 


OS 


15 


NS 


NOW 


$13.26 


MCM6290P2S 


16K 


X 


4 


25 


NS 


12 


NS 


NOW 


515.75 


MCM6290P30 


16K 


X 


4 


30 


NS 


15 


NS 


NOW 


813.80 


MCM6290P3S 


16K 


X 


4 


35 


NS 


15 


NS 


NOW 


$12.08 



Motorola is a winner of the first annual Malcolm Baldrige 
National Quality Award, in recognition of its superior company- 
wide management of quality procesaea. Congress established the 
award to motivate U.S. corapanlea to improve their worldwide 
competitiveness through quality strategies. 



Computer Systems Consultants, Inc. 

E. M. Pass, Ph.D., President 

1454 Latta Lane Conyers. GA 30207 

Telephone Number 404-483-4570/17 17 



■""■« frm»s.f». 
MOS Memory Marketing 
512/928-6100 



mantei- tumomi. 
Technical Info Center 
P.O. Box 52013 
Phoenix. AZ 83012 



atOTOaOLA VAST STATIC KAMS OITtR MOM OPTICUS 

Austin, Tejcaa. February 22. IMP The 

Motorola eta a u ay Products Division ia adding two 
new OtOa feet Btatlo HAMe lIUXs) to their 
•xtanaive memory offering To meat the 

everVrovlog demand of ayataa daalgoare for more 
options. Motorola in mow offering 4A a 4 and 16K 
a 4 feat aPJUMs with a very feet output enable 
function. 

The MCM6290P2S/30/3S, previously announced in SOJ IHarch 17, 
1988) is now available in a 22 lead, 300 mil plastic dual-in- 
llna package (PDlPi . The MCM6290 is configured 16K x 4 and 
featured fast output enable time of 12 na for MCM6290P25 and 15 
na for MCM6290P30/35. The fast output enable function is ideal 
for 32-blt microprocessor systems that depend on separate cache 
memory to enhance overall memory performance. 



Computer Systems Consultants was founded in 1972 and 
was incorporated in 1977. The company develops and 
markets personal and small -business software and hardware 
and provides consulting services. 

Its primary means of advertising is through magazine 
coverage in seveial specialty magazines, including '68' 
Micro Journal, Color Micro Journal, Hot COCO, etc. Most 
of its customers are in the United States, but a 
considerable percentage may be found outside Ihe United 
States. It has done business with over 1000 clients, many 
on a multiple-order basis. It has a network of over 50 dealers 
and distributors, on a worldwide basis. 

Most of Ihe hardware products and software products were 
developed for Ihe Motorola 68xx line of microcomputer 
systems. Some of the products have subsequently been 
placed on Ihe IBM Personal Computer and similar 
computers which opciate under MSDOS and PCDOS, in 
addition to systems operating under UNIX and XENIX. 



68 nrlcro Journal 



May '89 



40 



Intermetrics 



Software Product* DlvUor. 
A dWUao at lha Develop meal Sratetnj Croup of Istcncrtrio. [at 
Addreea: 733 Concord Avcaue 

Cambridge, MA Otll» 
Trleplvw (ei7)Ml-ISVH> 

Pre. Pallida Affud 

Contact: (»17) MI-IMO *tl. *»15 

Baainc.: Dd|U, DirhM and proride* v«ebaic«X auppou 

for lovsrToohv, iotetrated nt>in deTrJopmctn loob for 
the d«ri|otn of mtiuijiiiaa.R-baaed evataaa; mad for 
the Wftltaamttba' Una of hAwvc dcrekipmcDl toob sod 
lot TORN operating eraUm. 

Product Us*: * iaurTooi* C ill, an mpliera, ma aamblm, 

XDB - Hum level on defauuere. eod utility p/ograma 
for proframmloe' embedded m]cropn*B<aDra. 
• Whllmmtlbj 1 C Dative and ere compilera. aimulatora, asaemblrrB. 
mnd IDK1S, the Bret red-time operelloj syatrm which wm not derived 
from AT4T rode. 

Hart Plelfornur. VAX. MIcroVAX VAXjtatloo (VMS. Ultrbt>, 
Sua, Apollo. HP 0000 Sertoj 300. IBM 370, 
IBM PC XT/AT ud compatible!. 



Tan eta: 



CotnpetlW* 
ItattruflienuK 



MM/1I6/2M, uood/oio/dio. saoa/06/og. MHO I. ZW. 

VJ0-VSO. V60, «ad the Am20000 (Advanced MJcro Devit.) 

Emulator! from Applied McnzTJtemi, ZAX. Tiktrottla, 
Microtek (guroalkoaal. Sophie, ud Hewleu Packard- 

William Carina. General Mxucrr 
Diem Lc. Director of Sate* and Markrtiat 
AJao t nr i trana . Seta Meseler 
Jim WetUo*, Product Marketioi Manna.? 



;n,CRQQ UftlK j 



■aaaaaaa nfloouc 10 Divi5t'« mmmmma 

SEAILAN, INC. 

MICR0-UNK Jnlreduca. 8T0207 Slf-Bl* Board Syaiam 
Iht r*»l*tt 16 bit indu»trl-l alnroootepu.tr ayataaa In tha world -.r- new 
bain* daaLfr**.. .round th* Mcro-Llok STD207 aintla Bo.nl ^hh, th» )-lc«t 
avddltioft to an niruivi lln- or STXbua prc-.t»c.», 

U*.(i<i a 66000/010 CPU rtmMAf at l6rWx, vita )12X ttAfl in) up to S.2K SMttH 
on board without wait iUui, tha porforaanea aioaada 2000 thrratanai. Hi* 
on board tjftt#» faailU.aa Lnoluda t*o l.3*?3.2/*.85 urUl porta., a p*r%ll*l 
srinitr peri, a SCSI initrfaa** thraa *6 bit countvor/t wn, aad aitacaiva 
Lntarrvpl eapabltlllM, 

lacludad with tfca o*rd I- u< R)dtObu« dituipr or. optionally, tiwj 5TBPHCK 
aalbaddad raaltlaa. •ultltaakl.af PS00 oparatloa, a/ataa, Davalopaarat aM 
lariat »7>t**s oooltiural.ona for all tnduatri.l appXimtlooa, tofatbar with 
•oft-vf- tool* aflaj aupport. ar* -.*%il«bli from HUro-Llak. 



SOFTWARE DEVELOPMENT SYSTEMS, INC. 

Questions? Call l-80» -448-7733 or 1-312-971-8170 
or send a FAX 10 1*312 971-8513 



The Compiler 



Twelve major features 
make your job easier 

1. It's 100% ROMable 

CrossCode C provides all the startup source code you need 
to set up your stack and initialize RAM. The startup code 
lakes you all the way from "reset" to function "main", and 
you can customize it to suit your application. 

The compiler automatically splits its output into five mem- 
ory sections: code, strings, initialized data, constant data. 
and uninitialized data. At link time you can locate each 
section into ROM or RAM as needed. 

2. It's Standard 

CrossCode C tracks the emerging ANSI C standard, and 
will conform to the standard when it becomes available. 
That means your code will always be standard, too. 

CrossCode C already supports many ANSI C enhance- 
ments including enumerations, type void, structure assign- 
ments, and separate name pools for members of different 
structures. Also, structures may be passed as arguments and 
returned from functions in a fully reentrant fashion. 

Function prototyping is available, so you can have the 
compiler automatically check the types of function argu- 
ments. Wherever possible, the compiler automatically casts 
arguments into (he proper type, so you'll never spend your 
valuable time debugging improperly passed parameters. 

No corners have been cut. CrossCode C is a fully reen- 
trant, modern implementation of the C language. 

3. Integrates C and Assembly Language 

With CrossCode C, you can write your code in any 
combination of C and assembly language. The documenta- 
tion tells you precisely how to pass parameters back and 
forth between assembly language routines and C functions. 

Assembly language code can also be placed directly in- 
line with C code. Here, a "TRAP #1" occurs if i and ; 
arc equal: 

if( t « j ) ■■■(" TRAP II"),- 



The STD207 SB3 le a e1a.nda.rd alee 3TB oerd and la fullr ooaeaUble with 
• xtallo* 3TTJ produote. leplvdlflf evar 100 Micro-Link twd* and aooeaaorlaa. 
9TO207 Froaueta are available new. with oard priori raaclog froa 1*00 to 
fISOO lo ciuantltr 100. 

Per farther leferaatle* aad product lulda, contact J la bull at l-tWO-all- 
alU et 11 ;-*•*- 1711. law) aetta n kir )l. Canal. IK tun. 



4. Generates Readable Assembly Language 

While debugging, you'll want to know which C state- 
ments generated what assembly language code. So the 
CrossCode C compiler generates assembly language code 
with your C language source code embedded as comments. 
Statement by statement, you can see exactly how the 
compiler has translated your program. 



May 89 



68 Mcro JoumaJ 



When you declare a register or stack variable, the assembly 
listing shows you where the compiler has allocated it. In the 
example below, variables g and h have been assigned to 
registers 07 and D6. and i has been assigned a stack 
location of - -0x4(A6)": 




r*9iit«r abir g,nj 

; D7 <- g.,^ 

; D6 <- h-"^ 

lot i; 

; -0x«(A6) <- i 



r*9<»«r tRocaro** 



««:« u x«to» 



Each C statement is followed by the code it emits: 



gt-*rll*C ooOt — 



C »0urC« 



1 ^i 

ADDQ. B 
MOVE. B 
EXT. W 
EXT. L 



■ ♦ ♦ni 
•Oxl , D6 
D6 , DO 
DO 
00 



MOVE. L DO , -0x4 (A6 ) 



5. Generates Compact Code 

CrossCode C always uses minimum required precision 
when evaluating expressions, so there's no unnecessary 
casting to int. Example: 



can instantly optimize programs that were written without 
registers in mind. 

Within each C function, you can use six data registers 
(D2-D7) to store integral data types such as char. int. and 
long. Four address registers (A2-A5) are available for 
pointers. If you're using the 68881, you can use six of its 
registers (F2-F7) to hold your floats and doubles. 

And there's a special feature for real-time applications: you 
can reserve any of the above registers for use as global 
register variables. Such variables retain their values across 
function calls, and may be used to hold time-critical data. 

8. Supports the 68020 

[f you're using the 68020. CrossCode C will use its 
extra instructions and addressing modes. In this 68000 
example, an array element is retrieved using three instruc- 
tions, and a "long" multiplication must be performed via a 
library routine: 

f r«f littc long i; long buf[t]r 

; 07 <- i 

; -0x2O(A6) <- but 

; I •= buf [i J ; 

MOVE. L D7 , DO 

MOVE.L 07, D2 

LSL. L 10x2 , D2 

MOVE.L -0x2 ( A6 , D2 . L) , Dl 



JSR IbuI \ 

MOVE.L D0.D7 K 



'ff •«■ l"lr » »■*»"» 



&*crm iv*o-tJ(on 



eyit nitrjciera 



I lot i; char cl.clt 
; -0x4 (A6) <- i 
; -0x5(A6) <- cl 
; - X 6 ( A 6 ) < - c2 

; elsi+ca; 

MOVE . B -0x1 (A6) , DO 

ADD. B -0x6 (A6) , DO 

MOVE.B D0,-0x5(A6) 



Other standard optimizations include "folding" constants at 
compilation time, converting multiplications to shifts 
wherever possible, and eliminating superfluous branches. 

6. Lets YOU Optimize Your Application 

You can optimize the compiler's output for your applica- 
tion because you control the sizes of C types. For maxi- 
mum integer arithmetic speed you can select two byte hits. 
or you can get maximum versatility by using four byte mis 
You may also select 32 or 64 bit sizes for each floating 
point type. 

If your load fits in 64K. you can get much tighter, faster 
code by selecting the small-model option. In small-model, 
all function calls are performed with "short" instructions 
and all data is accessed with 16 bit addresses. 

7. Optimizes Via Heavy Register Use 
CrossCode C reserves plenty of tegisters to hold your 
"register" variables. And there's a compiler option to auto- 
matically declare all stack variables as "register", so you 



With the "68020" option set. the following code is generated: 



MULU 



is buf (i) i 
-0x20 ( A6 . 07 , 



L«« ) , D7 



9. Provides 68881 Floating Point Support 
CrossCode C is fully compatible with the 68881 coproces- 
sor because all floating point constants are stored in IEEE 
STD-754 format. If you're using the 68881. the compiler 
performs all floating point operations through the coproces- 
sor, and float and double register variables are stored in 
68881 registers. 

If you're not using the 68881, the CrossCode C library 
provides floating point routines for all C language floating 
point operators (i.e. *.-.*,/). However, you must supply 
your own subroutines for any higher order floating point 
functions (e.g. sin, s*jrt) required by your application. 

10. Comes With C Library Source 

An extensive C library containing over 47 C functions is 
provided in source form. You may add, modify, or delete 
library functions. Included are routines for string for- 
matting (sprintf/printf), string copying and comparison 
(sir*), memory allocation (malloc), and state recovery 
(setjmp/iongjmp). 

11. No Limitations 

No matter how large your program is, CrossCode C will 
compile it. The compiler imposes no limits on the number 
of symbols in your program, the size of your input file, or 



66 Micro Journal 



Mayes 



51 



the size of a C language function. Symbol names may 
contain ap to 64 significant characters, and large symbol 
tables overflow gracefully to disk. 

12. Supports Position Independence 
CrossCode C can generate position independent code 
and data. Small and large models can be selected for any 
target processor. Small models use 16 bit offsets for 
tighter code, while large models allow unlimited code and 
data sizes. 

Code. ROM data, and RAM data can be selected separately 
for position independence. Code is pc-relative. RAM data is 
relative to an address register, and ROM data may be 
accessed either way. 

It's Tailor- Made 

A truly ROMable package mum start with a ROMable C 
compiler. CrossCode C gives you live independent compi- 
ler output sections, user-selectable type sizes, and a simple. 
well documented assembly language interface In short, it 
has everything you need to get \our code into ROM 



SOFTWARE DEVELOPMENT SYSTEMS. INC 

4248 BELLE AIRE LANE 

OOWNERS GROVE. ILLINOIS 60515 USA 

Phone: 1<aorM48.7733or 1-312-971 8170 

Fax: 1-31 2-971. 85 13 



Don Williams, 

66 Micro Journal, 

5900 Caaaandra Smith Road, 

Rixson, TN 37343 

Dear Don, 

A lot of water has flowed under the bridge since 1 
last wrote on XBASIC XPLANATIONS, so I figure it's 
time for another letter - prompted by a discussion 
with a reader in New Zealand. I'd like to discuss how 
floating-point numbers are represented internally, 
which (if readers are interested!) could lead me on to 
discuss floating-point math operations in general I J 

Let's start at the very beginning by looking at a 
simple decimal number, let's say 23.75. As it stands 
this is in fixed-point notation, the decimal-point 
being in its correct position. We could re-write this 
as 2.375 * 1CT or 0.2375 * 10 , where the exponent (to 
the base 10) tells us how many places the decimal- 
point should be shifted to the right to give us the 
true number. 

The two examples above could alternatively be 
expressed as 2.375E1 or 0.2375E2, given that 'E' trans 
'to the base 10". Tiie portion to the left of the 'E' 
is called the 'mantissa', while that to the right is 
called the 'exponent 1 . 

In XBASIC, numbers are represented in binary, with a 
binary mantissa such that all significant digits are 
to the right of the DP (decimal-point), the leading 
'0.' being discarded, as it's understood. So, let's 
begin by translating our 23.75 into straight binary, 
or rather BEX. How do we go about this? There are 
two steps - one to translate the integer portion, 23, 
and the other to translate the fractional part .75. 

Here's how we do it. First we write the number 23, 
with a vertical column to the right, and then 
successively keep dividing by 16 till we reach 0, 
noting each remainder to the right of the coltmn. 



23 

1 




B (remainder of 11 ■ B in B£X) 
1 



Then, reading f ran the bottaa up, we get IB, which is 
27 in decimal. Now for the fractional part, which is 
the reverse of what we've just done, except tliat we 
first translate to binary. That is, we draw a 
vertical column with the decimal fraction to the 
right, and keep Multiplying the portion to the right 
by 2 (till we reach 00 to the right) noting the 
overflow to the left of the column. So : 

I 75 
1 50 

1 I 00 

Reading from the top downwards, we get .11. The 
complete number is therefore IB (that is, 1 1011) 
followed by our fractional 11, which gives us 
11011.11, or, more correctly for floating-point, we 
have 11011.11 * 2 , or 11011. 11E0, where 'E' now rtee 
to the base 2. 



means 



Before proceeding, let's look at our 11011.11 jn a 
little more detail. As eveiyoue knows, the value of 
each '1' in this notation multiplies by 2 as we 
progress leftwards f ran the decimal-point (or should I 
now call it a binary-point?), so that we have a '1', 
plus a '2', plus no '4', plus an '8', plus a '16', 
which adds up to our integer-part, 27. In like 
fashion, as we move right from the BP, we 
progressively divide the value by 2, so that we have 
.5 plus .25, to give us our .75. 

Now let's slide our BP to the extreme left of our 
number (5 steps altogether) to give 0.1101111E5, the 
ES telling us that the BP has to be moved to the right 
by 5 places to restore the number to its correct form. 

Internally, BASIC drops '0.', and converts the binary 
number remaining to a HEX-forraat, by dividing it into 
blocks of 4 bits (ctjunencing at the left) and padding 
it out to a full 7 bytes (note, bytes - not bits) with 
the exponent stuck on the end as the 8th byte. 

Let's do thatl We have 1101 1110 as our first byte, 
followed by a string of 00s, with a final 05 for the 
exponent, or DE 00 00 00 00 00 00 05. This is only 
the beginning, however, as we now have to translate 
this into a *suppressed-bit" format. That is, just as 
we dropped the '0.' because that would al«yB be the 
situation at the extreme left of our number, we can 
also "suppress" the left-most '1', as this, too, will 
always be so. The first byte of our number will 
therefore become 0101 1110, or 5E instead of DE. 

What's the point of doing that?, you ask. Well, now 
we can represent negative numbers, by using the 
vacated most-significant bit as a sign-bit, so that if 
our original number had been -23.75 it would now be 
represented as DE (plus all the trailing 00s, of 
course). We still haven't finished, but I've run out 
of space, so we'll continue next month. Keep in mind 
that all the above applies equally as well to orn own 
6809 RBASIC, and to our 68000 RBASIC, except that our 
6BK version (because of its greater precision) has an 
8-byte mantissa and a 2-byte exponent . 

Sincerely, 



R. Janes 

President 

Kicronics Research Corp, 33383 Lynn Ave., Abbotsford, 

B.C., CANADA V2S 1E2 



52 



May '89 



68 Micro Journal 



Ooopon 



Contact; Bob Anundson. President 

88open Consenium. Lid 

50* MZ- 5703 



IrDaLaGeneral 

DATA WShU> annWUTMW 
MM +m* ■' Urn* MAM Ma WW* 



88opcn Spring Meeting in the European Computer Marketplace 
88000 RISC Systems and Snfiwaic Explored 

PvtUfld. Oxcgpn, USA. Mirch 13. 1989 -- WopcnConsoruumLkl.. ancwuneecl its 
u praniiQ£gencnlnvcO>ginEurape,tobc held May 9 and 10. The Giand Hotel 
SaltSKSbadei), located near Stacttalm, Sweden, is the venue tern BSopen s fiuepcan 
fETKTil session. Repsotoon and a welcome io Sweden hostvtaliry function are scheduled 
for May 8, sum 1 *! at «" -00. The schedule of evenra for May 9. includes an overview of 
68oc*n uid the Softwure Initiative rraisum and goals- Plus update aexsioru on the 
Motorola 88000 RISC chip, update* on OSF and Unix Innrrarxxxal . plus pioducl status 
prnmtabau. and a reception sponsored by Mowtoul The schedule for May 10. includes a 
product fair. Software InitUbvc break out sessions, gfiopen eonunittee overviews, and 
runvials on BCS/OC3 . embedded systems and support chip*. 

TV May venue in Sweden is the perfect occasion lo learn aboul (he 88K systems and 
software marketplace in Europe. us worth noting 0\a) Unix is otoeasin gly a standard 
opcrafuif system in Europe and some govern menu wail soon sandardiae on Unix. Britain 
is a buoyant Unix market* as in Sweden. Norway. Ocnmart, and Finland. 

With a number of Puropeao coero ben. sue* as Edinburgh Portable Cjxnpilcn (Scotland). 
Ericsson (Sweden). Integrated Micro Products (UK), Tadpole Technology (UK), and 
Dolphin (a subsidiary of Norsk Data, Norway), 88opert is uniquely posiootwd to serve ihe 
needs of tlic 88K community in Europe, as well as provide valluable information toother 
members oJ'thcConsoraurn 

The 88open Gjxjtjd um Ltd.. is a noi< !nr-nmfn organization fonned to develop and 
promote the suwc**s of Motorola's 88000 RISC cnu^uproEzs&cr archncccure. The 
Consortium, based in WilsenviUe, Oregon, ruu more i nan 50 raembas worldwide. 68open 
^pioneerings »ru*nieTneihcai of doing business ut the computer industry based on the 
r^^UryM 81!000^hascdapplicaiions across a variety of hardware puufanm htcludmg 
fault tolcririi Systems, computer servers, vortjorbonj and personal comput ers. 

68npen mernben and potential mem bai are invited toatfend this irnpcrtanigencraJ meeong 
in Stock) lm bo learn about the European market. 88open. a»id the Software Initiative. 
Pcservanon* must be received by the Grand Hotel Saliisjooadcn byAprd 2. Contact 
Sftopen for complete reservadon informadon. Telephones I 503 682 5703. Fax +1 503 682 
5836 Mailing adtfrtis: SSopen Co/ux*xJum Ltd.. 8560 SW Saash Lane. Suite 500. 
Wilsonvillc. Oregon U7O70USA. 

88 open Consortium Announces Software Inilialive 

New Business Methods r> Orate 
Shiink Wrapped RISC Applications for the Unix Markei 

BURLINGAME. Calif.— Feb. 21. 1989 — The 88opcnConsoroum Ltd. today 
announced the formation of the Software Initiative, an crgarusabon designed io accclaaie 
cccDparibiesoftwarr ocvttopn*n i for the Motorola 88000 RISC srcruiocture In a related 
anAouncrmcnl. more than 26 irdependen t software vendors (IS Vs) stated ihat they will deliver 
rjrw applications for the 88000 architecture in 1989. 

The Software Initiative is composed of hardware vendors including Data General. Motorola 
Inc. NCR and Sanyo/Icon [nicrasuonal 

The Software Initiative was created by hardware systems vendors who wanted to accelerate 
and support the process of software development. The Initiative members have focused on 
aeawg an environment that allows 88000 RISC-based application software to operate 
ii&fupvcnttyaora numerous systems, simitar to PC-clone "shrink wrapped" software. To 
achieve this, die Software Initiative will provide ISVs whh equipment and technical assistance. 

"We see tromendou s acceptance and support for the 88000 by the software community ," 
said BobAnundson.executivedireciorcf the 86open Consortium. 'This is due not only to ihe 
large potential market generated by the 88000. but also to the standards that make it straight 
forward id access all the sysiems using the 86000. and not jusia few manufacturers." 

TwosigmfMa^tfJumosrs of aftopea piovided the genesis of theSoftwait Initiative: 

I ) Fftoenn g the i apid portin g of software » the standard contpustr environment. 

2) Designing, rniplcrnenting and pmmoung a compliance testing and labeling 

program lint will ensure the end user thai the products, both haidwarc and software, 
whicharc marked as compliant are intertable. 

The Software Initiative will monitor and administer the ceroficaoon poxes* for comp Uar» t 
products. 88opcn will appiovc ISV self .testing procedures for a software port.aAcr which the 
IS V wi|] pa foitn us own compliance tests before subi nib ng the product and test results to 
BSopeA TV Consisru um will review (and aucbt) compliance and issue a tndentarked seal to 
oompi jam software. A similar program for hardware will require execution of a aistocn test suite 
as well as conduit applications software to be cbgiblc f or certiTicarioa. 

"We are extending stendards and the standards development process beyond the norm 

established by the industry, ' said Roger Cady. director of the Software Initiative "Our 

organ cation is providing ISVs with more than juit standard) on a piece of paper. We hive 

aarurofted people, resources and funding necessary to bring full implementation of RROaxv based 

hardware and software to all computing markets " 

Wop«n Ccrtsorihrm Ud 
A560 SW 5oksn Lone ■ Swio iOC • W«cnv*« Ot? 07Q70 • USA * to) I S03) 68? 67QJ • ten (&J) 6fl2-S63« 



Andrew Hettinger 
50B-B9B-4060 



DATA GENERAL ANNOUNCES DG/UX 4.1, 

INDUSTRY'S FIRST UNIX OPERATINC SYSTEM 

FOR FAMILY OF RISC-BASED SYSTEMS 



SAN FRANCISCO, Feb. 2B -- Date Oeneral today announced 
DG/UX ™Revialon 4,1, the first UNIX opereting system 
capable of running on a full family of RISC machines from 
alngle-uaer workstations to multiprocessor-based systems. 
Data General also announced lta intent to seporatoly license 
DG/UX 4.1 on other vendors' systems. 

D0/UX 4.1 is an enhanced version of the DG/UX operating 
system, that embraces Industry stsndsrde end is designed to 
take full advantage of the Motorole BB000 RISC architecture, 
"with this announcement. Data General dell vers on ita 
commitment to port the industry-leading DG/UX 4.0 operating 
ayaten from MV/Fanily ayatems to the new family of 
BBOOO-baaed products,* said Herb Osher, division director of 
product marketing. 

DG/UX 4.1 is a commercial-grade implomontation of UNIX, 
compatible with both UNIX System V. 3 Release 1 from AT&T and 
Berkeley Software Distribution Revision 4.2. it incorporates 
the major features found In UNIX operating systems with sll 
of today'a available UNIX standards. 

DO/UX 4.1 complies with trie following Industry, 
government or de fscto standards: 

- SVID2 (System V Interface Definition issue 2) 

- SWS (System V Verlflcstlon Suite) 

- POSIX (IEEE Portsble Opereting Syetem interfece 

Specif icstlon P1003.U 

- BBopon Binary snd Object Compatibility Standsrds 

- X Windows Version 11 relesse 3.0 

- ONC™/NFS 4.0 

DG/UX 4.1' a advanced features support workatatlona, 
servers and large multlproceseor syetema. In technlcel and 
coaoaercial environments, with unmatched performance for 
computational snd interactive applications. Theae features, 
which ere transparently available to applications, include: 
fully-symmetric multiprocessor support for greater processing 
power, e re-englnoored kernel providing greater portability 
snd maintainability of system code, a robust file aystea for 
grester dsts security snd recoverablllty, a flexible file 
system thst permits the management of files for growth, 
performance, and convenient backup, an Intelligent echeduler 
for greater throughput and better response times than 
provided by ordinary UNIX schedulers snd dlskless/tapeleas 
workststlon support for lower cost snd contrsllasd control of 
dsts. 

For compatibility with existing applications, OG/UX 
implements 106 of tho ill portsble application-col lebio BSD 
system calls and the most useful BSD libraries and cotmnsnde, 
en ANSI C Compiler optimized for the 8B000 srehitectures, 
eight-bit international chsrscter eet support and an 
extensive range of sssy-to-use aystea administration 
facilities. 

DG/UX 4.1 supports a wide range of layered software 
products including TCP/IP coasmunicationa aoftwaro, NFS 4.0 
and X-Wlndowa Version il release 3. DG/UX 4.1 csn eaeoute 
BCS-compllant applications developed for BBOOO-based systems 
end has the ability to generate and execute SVID-. POSZX- end 
BSD-compliant applications in BCS format. 

Ill 



66 Micro JoumaJ 



May '89 



53 



8 



S 

£ 
9 



0OFLS6 


CLR 


GOTOFL.PCR 




IDA 


SAVECH,PCR 




STA 


ECHOFL.PCR 




KTS 




DOTRUE 


TST 


NOTFI£,PCR 




8KB 


OOP LSI 


DOTRU1 


BSR 


CHKPAR 




CMPB 


IPARTKN 




BME 


DOTRU2 




INC 


IFLEVL.PCR 




RTS 




D01HU2 


CMPB 


IPARGTO 




LB£Q 


DOGOTO 




I BRA 


CHDPER 



* PROCESS 'NOTE' COMMAND 



DONOTE TST 
BNB 

0ONOT1 IDA 
STA 
LOX 
JSK 

DONOT2 RTS 



ECHOFL.PCR 

DONOT2 

iSOA 

(TRMADR.PCR] 

LINPTR 

PSTRNG 



* PROCESS 'ON' CO>»»ND 



DOOM 


BSR 


CHKPAR 




CMPB 


tPARERR 




LBKE 


CMDPER 




BSR 


CHKPAR 




CMPB 


•PARC ON 




BNE 


OOON1 




CIR 


ERHFLG.PCR 




RTS 




• 






0OON1 


CM?B 


IPARGTO 




L3KE 


CMDPER 




LEAX 


ERRLAB.PCR 




CLR 


0,X 




LDB 


18 


DOON2 


JSR 


NXTCH 




STA 


,X+ 




OCA 


ISP ACE 




BLS 


DCON3 




DEO 






BNE 


0OON2 


OOON3 


TST 


ERRLAB.PCR 




LBBQ 


CHDPER 



CIEAR GOTO FLAG 
RESTORE eCHO STATUS 



TRUE; TEST 'NOT' FLAG 

DEFINITELY TRUE; CHECK PARAMETER 
IF 'THEN' 

THEN INCREMENT 'IF' NESTING LEVEL 

P.l.V IF 'GOTO', GOTO LABEL 
ELSE HAVE ERROR 

IF ECHO IS OFF 

CHANGE LINE TERMINATOR TO EOT 

THEN OUTPUT REST OF LINE TO THE TERMINAL 



CHECK PARAMETER 

IF NOT 'ERROR' THEN HAVE ERROR 



CHECK PARAMETER 
IF 'CONTINUE' 



THEN CLEAR ERROR FLAG 



ELSE IF NOT 'GOTO' 
THEN HAVE ERROR 
ELSE GET ERROR LABEL 



LDA 
STA 

RTS 



II 

ERRFICPCR 



SET ERROR FLAG 



* PROCESS 'PAUSE' COMMAND 

t 

OOPAUS BSR OONOTE 

LEAX CONTNM.PCR 

JSR PSTRNG 

JSR INCH2 
RTS 

• 

* PROCESS 'REM' COMMAND 

t 

DOREM RTS 



* PROCESS 'SHIFT' COMMAND 



DOSHFT IEAY 
IDB 

DOSHl LDX 
STX 

DECB 

BNE 

RTS 



PARPTR+2,PCR 

INPARAM-1 

2,T 

,Y*+ 

DOS HI 



OUTPUT REST OF LINE TO THE TERMINAL 
OUTPUT CONTINUE MESSAGE 

WAIT FOR CHAR FROM KEYBOARD (f 

ST 

£ 
1 

IGNORE REST OF LINE ft 

A 

5 

POINT TO FIRST COMMAND LINE PARAMETER HI) 
SHIFT PARAMETER 




• CHECK FOR PARAMETER 

• RETURN ACCB - PARAMETER NUMBER, OR ZERO IF NOT FOUND 

* 

CHKPAR I£AX PTABLE.PCR 

BSR CHKTBL 

TFR X,D 
RTS 



* CHECK FOR COMMAND 

* RETURN IX - ROUTINE ADDRESS, Z = IF FOUND; Z - 1 IF NOT 



IF NO LABEL THEN HAVE ERROR 



CHKCfC I£AX CTABI£,PCR 

PSHS X 

BSR CHKTBL 

PUIS D 

BEQ CHKCM1 

LEAX D,X 



SAVE ADDRESS OF CTABLE 
LOOK FOR COMKAND 



ADD IN ADDRESS OF CTABLE 



s 



s 



a 



CHKCMl RTS 






TOUPPR 


CMPA 


I'a 




* 








BID 


TOUPP1 




* 








CMPA 


I'x 




* CHECK TABIE 


FOR ENTRY 






BHl 


TOUPP1 




* ITEM TO CHECK IN LINPTR -> 


LINBUF, IX -> TABLE TO CHECK AGAINST 




SUBA 


1520 




* RETURN ENTRY 

* 

CHKTBL LDY 
CHKTB1 PSHS 


VALUE IN DC, Z 

LINPTR 
Y 


= IF FOUND; IX • 0, Z - 1 IF NOT 
SAVE LINPTR 


TOUPP1 

* 


RTS 






* 








BSR 


COMPAR 


COMPARE TWO ITEMS 


* COMMAND FIIE 


LINE INPUT AND 


PARAMETER EXPANSION ROUTINES 


BNE 


CHKEND 




* 








LEAX 


2.X 


IF DIFFERENT, MOVE TO NEXT TABLE ENTRY 


********************************************************************* ********** 


PULS 


Y 


RESTORE LINPTR 


* 








STY 


LINPTR 




* READ 


NEXT LINE FROM THE COMMAND FIIE 


TST 


o,x 


IF FIRST CHAR OF TABIE ENTRY <> 


* 








BNE 


CHKTBl 


THEN CONTINUE 


READLN 


TST 


ECHOPL, PCR 


IF ECHO IS ON 


* 








BEQ 


READLO 




IDX 


10 


NOT FOUND; RETURN IX - 0, Z - 1 




JSR 


PCRLF 


THEN OUTPUT CRLF AND PROMPT CHAR 


RTS 








IDA 


l' + 




• 








JSR 


OUTCH2 




CKKFNO LEAS 


2,5 


FOUND; RESTORE STACK 


READLO 


CLR 


INPARM, PCR 


CLEAR FLAGS 


10% 


.X 


RETURN IX = TABIE ENTRY VALUE AND Z - 




CLR 


INLINE, PCR 




RTS 








CLR 


INTEXT.PCR 




* 








IOY 


ILINBUF 


START OF LINE BUFFER 


* 








STY 


LINPTR 




* COMPARE TWO 


ITEMS TERMINATED BY <- SPACE, POINTED TO BY IX 


READL1 


BSR 


READCH 


GET CHAR 


* RETURN IX POINTING TO BYTE 


PAST TERMINATOR 




STA 


,Y+ 




* RETURN Z = 


IF SAME, Z - 1 


OTHERWISE 




CMPA 


ICR 




* 








BEQ 


READL3 




COMPAR JSR 


NXTCH 


GET NEXT CHAR FROM LINBUF 




CMPY 


ILINBUF+127 


IF EDO OF BUFFER 


CMP A 


ISP ACE 


IF <= SPACE, END LOOP 




BNE 


READL2 




BUG 


CMPAR4 






LEAY 


-l.Y 


THEN DECROCNT BUFFER POINTER WAITING FOR 


BSR 


TOUPPR 


CONVERT CHAR TO UPPER CASE 


CR 








PSHS 


A 




READL2 


BRA 


READL1 




IDA 


, X+ 


GET NEXT CHAR FROM STRING 


* 








BSR 


TOUPPR 


CONVERT TO UPPER CASE 


READL3 


IUD 


IS0D0D 


ADD SECOND TERMINATOR 


CMPA 


,s+ 


COMPARE TMO CHARS 




STD 


,-Y 




BEQ 


COMPAR 






STY 


TRMADR, PCR 


SAVE FIRST TERMINATOR ADDRESS 


CMPAR2 IDA 


,X+ 


NOT SAME; MOVE IX TO BYTE PAST TERMINATOR 




LDA 


l$FF 


INDICATE NEXT CHAR = START OF LINE 


CMPA 


•SPACE 






STA 


STLINE.PCR 




BHl 


CMPAR2 






RTS 






CMPAR3 CIRA 




SET Z = 1 


* 








RTS 






* 








* 






* READ 


NEXT CHAR FROM COMMAND 


FILE, PARAMETER BUFFER OR TERMINAL 


CHPAR4 IDA 


,X+ 


CHECK IF IX -> TERMINATOR 


* 








CMPA 


ISPACE 




READCH 


PSHS 


X,Y,B 




BHl 


CMPAR2 


IF NOT, NO MATCH 




TST 


INPARM. PCR 


CHECK EXPANDING PARAMETER FLAG 


IDA 


#1 


SET Z = 




BEQ 


READC2 




RTS 






* 








* 
* 






* READ 

* 


FROM PARAMETER 




* CONVERT CHAR 


TO UPPER CASE 






LOX 


CURPTR.PCR 


GET NEXT CHAR FROM PARAM BUFFER 


* 






READCO 


ISA 


, X+ 





s 
























BBQ 


RE ADC 1 


IF ZERO, HAVE END OF PARAH; GET CHAR FROM 




BNE 


RE ADC 9 








FII£ 


STX 


CURPTR.PCR 






CMPA 
BNE 


ICR 
READC9 


IF CHAR - CR 








BRA 


READCB 


ELSE CONTINUE 




CLR 


INLINE, PCR 


THEN CLEAR TERMINAL LINE FlAG 






* 










BRA 


READC9 








* READ 


FROM CCMAIO FILE 




* 












* 








READCB 


TST 


eCHOPL.PCR 


IF ECHO FIAG SET THEN ECHO CHAR TO USER 




READC1 


CLR 


INPARM.PCR 


RESET EXPANDING PARAH FLAG 




BEQ 


RE ADC 9 








READC2 


TST 


INLINE, PCR 


IF TERMINAL LINE FLAG SET 




PSHS 


A 










BNB 


READC7 


THEN READ FROM TERMINAL 




JSR 


PUTCHR 










BSR 


CMDCKR 


GET NEXT CHAR FROM COMMAND FIIZ 




PULS 


A 










OCA 


♦ '% 


IF PARAMETER INDICATOR 


RE ADC 9 


PUIS 


x,y,B 










BNE 


READC8 






RTS 












8SR 


OOCHR 


THEN GET NEXT CHAR 


* 














CMPA 


#'0 


CHECK FOR VALID PARAMETER 


READER 


LEAX 


PREFM.PCR 


REPORT PARAMETER ERROR AND EXIT 








BLO 


READC3 






BRA 


PERROR 










CMPA 


♦ '9 




ft 














BHI 


READC3 




* 














SUBA 


*'0 


CONVERT CHAR TO PARAMETER NUMBER 


* GET NEXT CHAR 


FROM COMMAND 


FILE 








I£AX 


PARPTR, PCR 


GET PARAMETER POINTER 


* 














ASIA 






CXDCHR 


LEAX 


OOfCB.PCR 


READ NEXT CHAR FROM COMMAND FILE 








LDX 


A,X 






JSR 


FMS 










INC 


I NP ARM, PCR 


INDICATE EXPANDING PARAMETER 




BBQ 


CMDCH1 










BRA 


READCO 


GO AND GET CHAR FROM PARAMETER 




lea 


FERR, X 


IF eRROR o EOF 






• 










cmp a 


♦ E EOF 






f 


READC3 


TST 


GOTOFL.PCR 


IF GOTO FLAG NOT SET 




BNE 


DSKEBR 


THEN REPORT DISK ERROR AND EXIT 






BNB 


RE ADC 9 






TST 


GOTOFL.PCR 


ELSE IF GOTO FLAG SET 




i 




CMP A 


#'C 


THEN IF CHAR - "C* OR 'e* 




BEQ 


CMDCHO 








BBQ 


READC4 






LEAX 


NOLABM.PCR 


TIEN REPORT MISSING tABEL MESSAGE AND 


EXIT 






CMPA 


*'c 






BRA 


PERROR 










BNB 


READCS 




• 












READC4 


LDA 


t'1 


THEN OUTPUT PROMPT (?) 


CMDCHO 


TST 


IFLEVL.PCR 


ELSE IF 'IF' NESTING LEVEL - 








JSR 


PUTCHR 






BEQ 


EXIT 


THEN EXIT 






READCC 


JSR 
BRA 


INCH? 
READC9 


READ CHAR FROM THE TERMINAL 


EXIT 


LEAX 


INIFM.PCR 


ELSE REPORT IF NESTING ERROR MESSAGE 


AND 




■ 










BRA 


PERROR 








READCS 


CMPA 


♦ 'L 


ELSE IF CHAR - 'L' OR '1' 


• 














BBQ 


RE ADC 6 




CMDCH1 


CMPA 


*$02 


IF BINARY START OF FILE MARKER 








CMPA 


I'l 






BNE 


CMDCH2 










BNB 


REAOCA 






LEAX 


FILERM,PCR 


THEN REPORT FIIZ TYPE ERROR AND EXIT 






READC6 


me 

BRA 


INLINE, PCR 
READC4 


THEN SET TERMINAL LINE FLAG 
AND GO AND READ CHAR 


• 


BRA 


PERROR 








a 








CMDCH2 


TST 


STLINE.PCR 


IF START OF LINE FIAG SET 






REAOCA 


CMPA 


#'T 


ELSE IF CHAR - 'TOR CHAR - *t 




BEQ 


CMDCH3 










BBQ 


READCB 






CMPA 


♦ SPACE 


THEN IF CHAR - SPACE 








CMBA 


#'t 






BEQ 


CHDCfK 


THEN GET NEXT CHAR 








BNB 


READCB 






CLR 


STLINE.PCR 


ELSE CLEAR START OF LINE FLAG 






READCB 


D)C 


INTEXT,PCR 


THEN SET TERMINAL TEXT FLAG 


CHDCH3 


RTS 








s 




INC 
BRA 


INLINE, PCR 
READCC 


AND TERMINAL LINE FLAG 
READ CHAR 


■ 










? 


• 










| 


READC7 


JSR 


INCH2 


READ LUG LINE FROM TERMINAL; GET CHAR 


« ABORT 


AND ERROR ROUTINES 






1 




TST 


INTEXT.PCR 




* 











s 

s 
g 



* TEST FOR ABORT FROM THE USER 

* 

TSTABT JSR STAT 

BEO TSTAB1 

JSR INCH2 

CMPA IBRKCHR 

BEO TSTAB2 
TSTABl RTS 
• 

TSTAB2 LEAX 6PEAKW,PCR 

BRA PFJUW* 



* COMMAND FII£ PARAMETER ERROR 

CMOPER LEAX CMDPEM.PCR 

BRA PERROR 



IF KEY PRESSED 



THEN GET CHAR 

IF CHAR <> BREAK CHAR 



THEN RETURN 

ELSE PRINT BREAK MESSAGE AND EXIT 



PRINT COMMAND PAREMETER ERROR AND EXIT 



EXIT1 



EXIT2 



ENDDO 



LDD 


SVKENO.PCR 


STD 


MEMEND 


BRA 


EXIT2 


LEAX 


MENDM.PCR 


JSR 


PSTRNG 


JSR 


PCRLF 


CLR 


CURLIN 


CIR 


CHDFLG 


JMP 


MARIS 


BQU 


• 


END 


DO 



THEN RESTORE MEMEND 



ELSE OUTPUT ERROR MESSAGE 



CLEAR CURRENT LINE NUMBER ON PAGE 
CLEAR COMMAND FLAG 
RETURN TO FLEX 



• PRINT DISK ERROR MESSAGE AND EXIT 

REPORT DISK ERROR 



DSKERR LEAX 
JSR 
BRA 



DOFCB, PCR 

RPTERR 

PERR1 



• PRINT ERROR MESSAGE AND EXI7 

PERROR JSR PSTRNG 

PERR1 LEAX ABORTM,PCR 

JSR PSTRNG 

JSR PCRLP 



* EXIT FROM 'DO' 



PRINT ERROR MESSAGE 



EXIT 



LDS 


SAVESP,PCR 


JSR 


FMSCLS 


IDA 


SVPAUS.PCR 


STA 


TTYPS 


LDA 


SVSPIO,PCR 


STA 


SPECIO 


LDD 


MEMEND 


CHPD 


NEWMND, PCR 


BNE 


EXIT1 



RESTORE STACK POINTER 
ENSURE ALL FILES ARE CLOSED 
RESTORE TTY PAUSE FLAG 

RESTORE SPECIAL 10 FLAG 

IF MEMEND OK 



FOR THOSE WH 




68 MICRO 



JOURNAL 



TM 



Classifieds 



Ai Submitted - No Guarantee* 



Surplus Unused Motorola VIME Modules & Electronic Solutions Enclosures for Sale at Discount 



$675 

$380 
$490 
$675 
$695 



MVME133 CPU Modulc-68020, 1MB DRAM, 68881 FPP, 

3 serial Pons, EPROM Sockets. VMEbus Interface 
MVME225-1 1MB DRAM Module. A32/D32 VMEbus Interface 

MVME320A Winchester / Fllopy Controller 

MVME332 8 Channel intelligent Serial Communications Module 

Scries 7 Electronic Solutions 7 Slot Desktop Enclosure, P1/P2 

Backplane, 325W PS, Space for Winchcslcr/Floppj/Tapc 

Respond to: John Gannon, RPG, P.O. Box C12399, Sic 162. Scoitsdalc. Arizona 85267 Phone (602)951-3373 

• •• 

S+ Memory Caids. CPU Cards, Hard Disks w/Controllcr Caids, I/O Cards. Cabinets, Power Supplies. 
S/09 CPU Cards, Memory, I/O Cards. Controller Cards. Cabinets, Power Supplies 
3-Dual 8" drive enclosure with power supply. New in box. $125 each. 
5-Sicmcns 8" Disk Drive, $100 each. 

Tom (615) 842-4600 M-F 9AM to SPM EST 

• •• 

HELIX 6809 SYSTEM, 6809 CPU card, 64K memory card. S-64 motherboard w/2 parallel, 2 serial. 

Offer. (301)977-5633 

• •• 

MUSTANG08. HD controller, OS968K, C, UMACS, US$900. Phone me around 1900 UT or at 0600 UT NEW 
ZEALAND 04-847-596 



r 



% 



FLEX™/SK-DOS™/MS-DOS™ 
Transfer Utilities 

For 68020 and CoCo* OS-9 Systems 

Now READS 

WRITE -DIR • DUMP - EXPLORE 

FLEX,SK-DOS & MS-DOS Disk 

These Utilities come with a rich set of options 

allowing the transfer of text type files from/to 

FLEX & MS-DOS disks. 

*CoCo systems require the D.P. Johnson 

SDISK utilities and OS-9 and two drives of 

which one must be a "host" floppy. 

CoCo Version: $69.95 68020 Version $99.95 



S.E. Media 

PO Box 849 

5900 Cassandra Smith Rd, 
Hixson.TN 37343 
(615) 842-7990 

FAX (615) 842-4600 





SPECIAL - ATARI™ 

& 
OS-9™ 



NOW! - If you have either the Atari 520 or 
1040 - you can take advantage of the "bar- 
gain of a lifetime" OS-9 68K and BASIC all 
for the low, low price of: 

$150.00 



Call or Write 

S.E. AAodio 

5900 Cassandra Smith Rd. 

Hixson. TM 373-43 

6>15 842-4601 

FAX (t»15)842-7<? < 90 



se 



May '89 



$0 Mao Journal 



r 



SK*DOS*/68K 

Read the fine print to see what's in SK*D S/68K: 



O Full DOS documentation plus on-line help Q Multiple directories 
O User-installable device drivers Q Install up lo 8 different I/O 
devices D Keyboard type-ahead O Print-screen O Virtual (RAM) 
disk D Disk cache D Up to 10 drives D 5W" or 3V5" floppy drives D 
Hard drives to 64 megabytes each O I/O redirection to diives or I/O 
D lime/date stamping of files D Tile or disk write protect (even 
hard disk) D Batch files D Support for 68000. 68010. 68020 D 
Monochrome or color video board support Q Read and write MS- 
DOS disk files D 6809 Emulator □ Powerful utilities such as copy- by- 
dale, undelete, show differences between files, prompted delete, ten 
file browse, and more - all included Q Simple Basic included O Past 
assembler included O Line editor included D User support via 
newsletter and DOS D Available software: C compiler, full Basic, 
screen cditoit, disassemblers, enss-aav mblers, spelling checker, text 
formatter, music editor, hard disk manager, ROM-based debugger, 
modem communications programs, etc. More compilers coming. □ 
(Some features may not be implemented in all hardware manufac- 
turers' implementations.) 

Individual copies of SK*DOS/6SK are $140; less in 

k quantity or when bundled with hardware. Send 
for our 6809 / 68K hardware and software 
catalog. Also available as part of our 
hardware/software educational course. 
Software Systems Corp. 
P. 0. Box 209J 
Mt.Klsco, NY 10549 
(914)241-0287 
BBS (914) 241-3307 Fax (914) 241-8607 




THE QUICK ED 
0S-9 SCREEN EDITOR 



Word Processor and Text Formatting System 



* 
* 

* 



Edits up to nine files simultaneously 
Microjustifies mixed proportional text 
Uses all the k**» on your printer Vi£e°a;u. 
Uses cursor and function keys on any terminal 
Definable high-level formatting commands 

User-specific ke board mappi g and macros 
Highly configurable on multi-user systems 
Automatic h phenation and table of contents 
Imports graphics and listings i to documents 
450 pages of comprehensive documentation 



At last 1 Use your laser printer ! 

The Quick Ed screen editor and formatter: S275.00 

Call for information on OS-9 consultancy set vices, disk 

caching, graphics, lint, Modula-2 and tile managers. 

'OS-9* is a Trademark of Microware lac 



n n 

aaaJ Windsor Systems \ 



MOT Law Mai tana, Laiwaa KY «0Z2 U.&A 

TllWK PCS) C2J S380 Fax (50^ 42BS»M 



SOFTWARE 



68OO0 C CROSS-COMPILER 

1IM . 5XDOSM5DOS.VNIXJESIX tOBllCT OSt.XI 

1.1 l»t' nr " 1 
■rkisaWIOci 

CROSS-ASSEMBLERS WITH MACRO CAPABILITIES 

r.Atti ti»-n£xmf.ur»tFUixMsims.BMxsKix>&.xr.mx irute *uj$:k> 

Specify: ISn.&WJ. MOI/I I. UW. MM. U09. IX. 2MB. XHt. SMI. KK5. 68010. 3*100 
U<U«oils.|»iM«ii>C«MnK>iUdatllci Sooco fur ■Uioral tWcacti. JKKIfc. 
>. SVUIoilB 

CMODEM TELECOMMUNICATIONS PROGRAM 
snmioossiuxts ,vwxsLExj)stji£»ii.v/iiri£x object-oslt: c*ch sst 

(*_«>. «™i««t..^«»)c fit .«rfo.i*X)£vr xcw Katv.at 

SUPER SLEUTH DISASSEMBLERS 

nm m.ftJE x lin.ost ttm-vsiritx oa/tcr-owir iach im ris.xmt.coco 

[rnerku«ty tertttmt Hunt cm duk kMh UtvU irv lu.lt . H.r h 

Specify MKIU J.I.1>,1ffNVl3 version m JJHVBtmiA vrmtM 

COCO DOS iwUk h 6H00.U.3.M.WIUO1 <»• (ran ZHVaHl.t) ml; 

O0I0 vcidM flM.I'LKX.OSt.UNiri.KX.MSOOS.llNIX.SKIXXi .XENIX 

DEBUGGING SIMULATORS FOR POPULAR 8-BIT CPUS 

ticu tis-FiMxtmsin tn-umeusx OUKT-OXLt: lach uktoco hex. coco cwr 



spnmi, fcr<anvi.(i4j6a», tyn umnsi<*>T zxcrvLx <_>, 
ASSEMBLER CODE TRANSLATORS FOR 6S02, 6800/1, 6809 

UillllM PSJUXtM-OStOa-VNIFLKX 

ami » «•» a mm « r**u+. M*-ruix tif-osi o*ty ut-vmn^x 

FULL-SCREEN XBASIC PROGRAMS »«(. nm> muni 
AVAILABLE KOK KLKX. UNIFLEX. AND MSIIOS 



Ditoury GoDHd / Oqca 
M»laf u*S>im 



tMltoS««Si> 



tino 
(id) 
sioo 



ISO" 
MO 



DISK AND XBASIC UTILITY PROGRAM LIBRARY 

E4* oak »>n«i * ii **). f 

BASIC |nm ml BASIC p 



PROFESSIONAL SERVICES 



IOI T K K 



PVTINU COMMUNITY 



CUSTOMIZED PROGRAMMING 

we »iH cinutf «•* of iSx | 
■wriifiml catena) wffb wot new 
upon aw i Mrtft hlly of uc luodiTuLan 

CONTRACT PROGRAMMING 

IgrWnat 



: (he cWfr Is mcS tvBomiauon arimi* 



i twa.i Krvtce %r *»*t 



■riO— >ti4»— fct»«t tot i T l rtn lBM.1 

p*vl* boOMj oT ».i f ll. vld^ DEC. ISM. 00. HP. AT*T. lad I 

MttdUnqn. «(-*«« M1K»I . *•». Z»0. tJOL 6SO10, < 

la mi li and TT ol flo j fyflosH, an tyafiflu maims u 

■utile Board raoifti\ PiecrurBelaraonBviantrTwitU'tktaMltyby Ire- bout of oy IteMuS 



CONSULTING 



Computer Systems Consultants Inc. 



HMLnuUr* 

Carps* Oman jam 

((ODMMflO ■ («M)4I> 1111 



3= 






68 Mcro Journal 



May °89 



59 



K-BASIC™ 



The Only 6809 BASIC to Binary Compiler for OS-9 

FLEX or SK*l)OS 

Even runs on the 68XXX SK*IH)S Systems* 



....... ...... % 

Hundreds Sold at J 

i 



Suggested Retail: 

$100.00 



I 



For a LIMITED time 
save over 65%... 
This sale will not be 
repeated after it's 
over! * 



• 6809 - 0S-9™ users can now transfer their FLEX™ 
Extended BASIC (XBASIC) source files to OS-9, com- 
pile with the OS-9 version and run them as any other 
OS-9 binary 'CM D' program. Much faster than BASIC 
programs. 

• 6809 • FLEX users can compiler their BASIC source 
files to a regular FLEX *.CMD* file. Much faster execu- 
tion. 

• 68XXX - SK'DOS™ users running on 68XXX systems 
(such as the Mustang-08/A) can continue to execute 
their 6809 FLEX BASIC and compiled programs while 
getting things ported over to the 68XXX. SK'DOS 
allows 6809 programs to run in emulation mode. This is 
the only system we know of that will run both 6809 & 
68XXX binary files. 

K-BASIC isa true compiler. Compiling BASIC 6809 pro- 
grams to binary command type programs. The savings 
in RAM needed and the increased speed of binary 
execution makes this a must for the serious user. And 
the price is now RIGHT! 

Don't get caught up in the "Learn a New Language" 
syndrome • Write Your Program in BASIC, Debug it 
in BASIC and Then Compile it to a .CMD Binary File. 



jm ........... 

■ SALE SPECIAL: 

! $69.95 



SPECIAL 

Thank-You-Sale 

Only f Jrom: 



c 



p 



i 



S . E . Media- 

5900 Cassandra Smith Rd. 
Hlxson.Tn 37343 
Telephone 615 642-6809 
Telex 510 600-6630 



A Division of Computer Publishing Inc. 

Over 1 ,200 Titles - 6800-6809-68000 

FAX (615)642-7990 



K-BASIC will run under 68XXX SK'DOS in emulation mote (or the 6809. 

Price subject to change without notice. 



60 



May '89 



68 Micro Journal 



FHE 6800-6809 BOOKS 



OS -9 User Notes 

By: Peter Dibble 

The pubfishers ot 68' Micro Journal are proud to make available the 
publication ol Peter Dibbles 

0S9 USER NOTES 

InbrmaJion lor the BEGINNER lo the PRO. Regular or CoCo 0S9 

Us)ng0S9 

HELP, HINTS, PROBLEMS, REVIEWS, SUGGESTIONS, COMPLAINTS, 
0S9 STANDARDS, Generating a New Bootstrap, Building anew System 
Disk. 0S9 Users Group, etc. 

Programming Languages 

Assembly Language Programs and Interfacing; Bastc09, C, Pascal, and 
Cobol reviews, programs, and uses; etc. 

Disks Include 

No typing aJ the Source Listings in. Source Code and , wtieie applicable, as- 
sembled or compiled Operating Programs The Source and the Discussions 
in the Columns can be used "as is*, or as a "Starting Point for developing your 
OWN more powerlul Programs. Programs sometimes use multiple Lan- 
guages such as a short Assembly Language Routine tor reading a Directory, 
which is then *pped" to a Basic09 Routine lor output lorni ailing, etc. 

BOOK $9.95 

Typeset — w/ Source Listings 

(3-HolePunched;8xll) 

Deluxe Binder SS.SO 

All Source Listings on Disk 

1 -8' SS.SD Disk $14.95 
2-5" SS, SO Disks $24.95 



FLEX USER NOTES 

By: Ronald Anderson 

The publishers ol 68 MICRO JOURNAL are proudto make available the pub- 
lication of Ron Anderson's FLEX USER NOTES, in book form, This popular 
monthly column has been a regular feature in 68' MICRO JOURNAL SINCE 
1979. II has earned the respect ol thousands ol 68 MICRO JOURNAL readers 
over the years. In tad, Ron's column has been desofced as the Bfcie' lor 
68XX users . by some of the work) s leading m ioopfocessw prolessionats. The 
most needed and popular 68XX book available. Over the years Ron's column 
has been one of the most popular in 68 MICRO JOURNAL. And ol course 68 
MICRO JOURNAL is the most popular 68XX magazine published. 



Listed below are a lew ol the TEXT files included in the book and on 
diskette. Al TEXT files in the book are on the disks. 



LOGO CI File load program lo offset memory - ASM PC 

MEMOVES.Ct Memory move program ■ ASM PIC 

DUMPC Pnnw dump program uses LOGO- ASM PIC 

SUBTEST CI Simulation ol 6800 code lo 6809, show differences - ASM 

TERMEMC2 Modem input to dak (or other port input 10 disk) ASM 

M C2 Ouipul a tie lo modem (or another port) - ASM 

PRINT C3 ParaW (enhanced) printer driver . ASM 

MO0EMC2 TTL output to CRT and modem (or other pon) ASM 

SCIPKG CI Scientific (nam routines - PASCAL 

U.C4 Mini-monitor, disk resident, mariy useful funcMns • ASM 

PRINT C4 Parallel printer driver, without PF LAG ■ ASM 

SET C5 Set pnnier m ooes ASM 

SETBAS1 C5 Set printer modes • A BASIC 



Note: Cl , .C2, etc.=Chapter 1 , Chapter 2, etc. 

" Over 30 TEXT files included is ASM (assembter)-PASCAL- 
PIC (position independent code ) TSC BASIC-C, etc. 

Book only: $7.95 + $2.50 S/H 

With disk: 5" $20.90 ♦ $2.50 S/H 
With disk: 8" $22.90 + $2.50 S/H 




Shipping & Handling $3.50 per Book, $2.50 per Disk set 

Foreign Orders Add $4.50 Surface Mail 

or &7.00 Air Mall 

If paying by check • Please allow 4-6 weeka delivery 

* Ail Currency In U.S. Oollara 

Continually Updated In 68 Micro Journal Monthly 

Computer Publishing Inc. 

0900 Cassandra Smith Rd. 

Hlzson, TN 37343 

(615) 842-4601 




FLEX 8« naMuA ol Ttrtv**l Syaana Cosin) 

OSS 8 a I**™* ol MtflMl ind Uricrok TM» $106006*30 

etrMcniiMnilBtoideittAafCMViauPltWvfl Inc 



FAX (615) 842-7990 
Telex 5106006630 



68 Mian Journal 



May '89 



61 



1? 



68' Micro Journal 
Reader Service Disks 



Disk- I Fikiott. Minion. Muucopy.Minifmi. "Lifetime. ••Poeuy. ••Foodlist, ••Diet. 

Disk- 2 Ditkcdit w/ iniL* fixes. Piime. •Prrood, "Snoopy. ••Koolball. "Hexpawn. "Lifetime. 

Disk- 3 Cbug09. Sec], Scc2. Find, Table2. Intext. Disk-cxp, •Dtsksave. 

Disk- 4 Mulling Progiun, 'Finddai, 'Change. •Tcstdiik. 

Disk- 5 'DISKFK l. 'DISKFK 2. "LETTER. "LOVESICN. "BLACKJAK. "BOWLING. 

Disk- 6 • 'Purchase Order. Index (Disk file indx). 

Disk- 7 Linking Leader. Rload, Huincu. 

Disk- S Crlest. Lanpher (May 82). 

Disk . 9 Datrcopy . CKiifu 9 (Aug 82), 

Dlsk-IO Home Accounting (July 82). 

Disk- II Dissembler (June 84). 

Disk- 12 Modem68 (Miy 84). 

Disk- 13 *Iniunf68. Testmf68.*Qeinup > *Dskilign,Help.Dite.l°XL 

Disk- 14 •lnii. 'Ten. •Terminal, 'Find. 'Diikedii, Init.Lib. 

Disk- 15 Modem ♦ Updates (Dec. 84 Gilchrist) lo Modem 9 (April 84 Commo). 

Disk-16 Copy.Txt.Copy.DOC. Cu.TxtCu.Doc. 

Disk- 17 Much Utility. RATBAS. A Basic Preprocessor. 

Disk. 18 Pane Mod. Size.Cmd (Sep). 85 Armstrong),CMDCODE. CMD.Txt (Sept. 85 Spray). 

Disk- 19 Clock, Date, Copy. Cat. PDE1. Aim A Doc., Erron.Syi. Do, Log A en & Doc. 

Disk-20 UNIX Like Tools (July & Sept 85 Taylor 4. Gilchrist) Diagon.C. Giep.C. LS.C. FDUMRC. 

Dlsk-21 Ucilit.es St Games - Dale. Life, Madnesi. Touch, GobUn Sunhoi. & IS more. 

Disk-22 Read CPM & Non-FLEX Disks. Frarer May 1984. 

DUk-23 ISAM. Indexed Sequential fde Accessing Methods. Condon 1 1/85. Extensible Table Driven. Language Recognition Utility. Anderson 3/86. 

Dlsk-24 68' Micro Journal Index of Articles &. Bit Bucket Items from 1979 - 1985. John Current 

Disk -25 KERMJT for FLEX derived from the UNIX ver. Burg Feb. 1986. (2)-5~ Disks or (1)8" Disk. 

Disk -26 Com pact a UniBoard review, code St diagiam. Burlison Match "86. 

Disfc-27 ROTABITTXT. SUMSTEST.TXT. CONDATA.TXT. BADMEN.TXT. 

Dlsk-28 Cr-82 Emulator, bit mapped 

Disk-29 * 'Star Trek 

Disk-30 Simple Winchester. Dec. '86 Gmen. 

Dlsk-31 ••• Read/Write MS/PC-DOS (SK'DOS) 

Disk-32 Heir-UNIX Type upgrade - 68MJ 2/87 

Disk-33 Build the GT-4 Terminal - 68MJ 11/87 Condon. 

Disk-34 FLEX 6809 Diagnostics. Disk Drive Test. ROM Test. RAM Test - 68MJ 4/89Koipi. 



NOTE: 

This is a reader service ONLY! No Warranty is offered or implied, they are as received by 68' Micro Journal, and are for reader 
convenience ONLY (some MAY include fixes or patches). Also 6800 and 6809 programs arc mixed, as each is fairly simple 
(mostly) to convert to the oiher. Software is available to cross-assemble all. 

» Denotes 6800 - ♦♦ Denotes BASIC 
»•* Denotes 68000 - 6809 no indicator. 




8" disk $19.50 
5" disk $16.95 

Shipping &. Handling -U.S.A. Add: - S3 .50 
Overseas add: 54.50 Surface - 57.00 Airmail 

68 f MICRO JOURNAL 

S900 Cassandia Smiih Rd. 

Hixson. TN 37343 

(615) 842.4600 
FAX (615) 842-7990 
Telex 510 600-6630 




62 May '89 66 Micro Journal 



fr 



Card#_ 



!!! Subscribe Now !!! 
68 1 MICRO JOURNAL 

OK, PLEASE ENTER MY SUBSCRIPTION 

Bill My: □Mastercard I I VISA 
Exp. Dale. 



For 1 Year 



2 Years 



3 Years 



Enclosed: S 



Name. 
Street , 
City 



State 



.Z'P. 



Country, 



My Computer is: 



My Operating System is: 



Subscription Rates 



^ 




f ^ 

U.S.A.: 1 Year $24.50, 2 Years $42.50, 3 Years $64.50 

♦Foreign Surface: Add $12.00 per Year to USA Price. 
♦Foreign Airmail: Add $48.00 per Year to USA Price. 
♦Canada & Mexico: Add $9.50 per Year to USA Price. 

♦l).S. Currency Cash or Check Drawn on a USA Bank ! 

S - 

68' Micro Journal 

5900 Cassandra Smith Rd. 

POB 849 

Hixson.TN 37343 

Telephone 615 842-4600 

FAX (615) 842-7990 

Telex 510 600-6630 






68 Mac Journal 



May 89 



^y 




J 



63 



IF YOU NEED IT, WE'VE GOT IT! 
(OR WE'LL MAKE IT) 

Yes. PERIPHERAL TECHNOLOGY Stil se Is the F D 2 for SS-SO Bus Computers. And . if you donl need it , we sell other 
products trom Single Board Computers to Systems which should fit your requirements. Customs Hardware Design is 
also available. Here's a small sample of what we offer: 



FD-2 FLOPPY DISK CONTROLLER 

•Controls up to lour 5 1/4' Dnves 

• Runs in 1 or 2 MHZ Systems 
•Can be configured fcwertfieM or 16 
•Addresses par VO Slot (SS30 or SS30C) 

• Uses WD2797 Conooler Chip 
(compatible with 1 771 fi 79X Controller Chip} 

•Hardware and Software compatable with 
SWT°C DG4 conirollers 

«6800«8D9 Bex Drivers available 

•SK'DOS Operaling System or 0S96809 
Driver Package 



PT69-4 SINGLE BOARD COMPUTER 

•6809E Prosessor/I MHZ Clock 
•Four RS232 Serial Ports using 6850"S 
•Two 8 Bit parallel Ports using 8821 PIA 
• Time-Cn Day CtocK (MC146818) 
•59K ol user RAM 

•2K or 4K Ol EPflOM using 2716 or 2732 
•Double SidedVOoublG Density Oopoy ControllBr 
•Can Read/Write Radio Shack OS/9 Diskettes 
•Board SizeS 6' x8.r 



a 




MONTHLY SPECIAL 
FD-2 Floppy Disk Controller: $123.00 

Regular Price: $149.00 



(0| 






OSfl it t T'adtxTwfc of Mao*w« * Motorola 

SWTPC tt 1 Tr*o>m*i* of SoulNwtf TachnciJ Sy*l*m» 



PERIPHERAL TECHNOLOGY 

1710 Cumberland Point Or Suite B 

Marietta. Georgia 30067 

(404)984-0742 Telex* 600564 

VISA/ MASTERCARD/ CHECK/ COD. 



SYSTEMS 

•Floppy or Winchester Versions available 

•Systems use any 6809 Single 8oard 
Computer or 68008 Board 

•WHI be configured to meet your Requroments 

•OSS S SK'DOS Operating Systems 

•CsJ or wnie for system confxjuratnns 




Catalogues Available Upon Request. 



rr 



*\ 



DATA-COMP 



SPECIAL 



Heavy Duty Power Supplies 




For A limited lime our HEAVY DUTY SWITCHING POWER SUPPLY. These are BRAND NEW units. Note that these 
prices ere less then 1/4 the normal price for these high quality units. 



Make: Boschert 

Size: 10.5 x 5 x 2. 5 inches 

Including heavy mounting bracket and heatsink. 

Rating: in 1 1 0/220 volts ac (scrap change) Out: 130 wails 

Output: +5v 10 amps 
+ 12v - 4.0 amps 
+ I2v- 2.0 amps 
-I2v 0,5 amp* 

Mating Connector: Terminal scrip 

Load Reaction: Automatic short circuit recovery 

SPECIAL: $59.95 each 

2 or more $49.95 each 

Add: SI 50 each S/H 



J K 



Make: Boschert 
Size: 10.7S x 6.2 x 2.25 inches 

Rating: 1 10/220 ac (strap change) Out: 8 1 wans 

Outputs: +5v - 8.0 amps 
+ 12v . 2.4 amps 
+ 12v . 2.4 amps 
+ 12v -2 1 amps 
-I2v . 0.4 amps 

Mating Connector*: Molcx 

Load Reaction: Automatic short circuit recovery 

SPECIAL: $49.95 each 

2 or more $39.95 each 

Add: $7.50 S/H each 



5900 Cessendre Smith Rd., Hlxson, Tn. 37343 Telephone 615 842-4600 Telex 510 600-6630 Fax (615)842-7990 



64 



May '89 



68 Mcr o Journal 




Now Offering: *FLEX'" (2 Versions) 
AND 'STAR-DOS PLUS+ '" 




For Ordering Call 

(615)842-4600 



FROM - DATA-COMP, C.P.I. 



A Family of 100% 68XX Support Facilities 

The Folks who FIRST Put FLEX' V on 

The CoCo 




TSC Editor 
NOW $3 SOT 



STAR DOS PLUS + 

• Functions Same as FLEX 

• Reads - writes FLEX Disks 

• Run FLEX Programs 

• Just type: Run * STAR-DOS" 

• Over 3100 utilities & progiams 
to choose from. 



PLUS 
ALL VERSIONS OF FLEX & STAR-DOS* INCLUDE 

Read-Write-Dir RS Disk + 




Run RS Basic from Both 
More Free Utlities 



External Terminal Program 
+ Test Disk Program 
+ Disk Examine & Repair Program 
■f Memory Examine Program 
+ Many Many More!!! 



TSC Assembler 

Kr|i»00 

NOW $35.09 



UPS Battery Backup 



330 VA UPS 4 Outlets 

520 VA UPS 4 Outlets 

800 VA UPS 6 Outlets 

1200 VA UPS 6 Outlets 



Disks 



309.00 5" Box of ten ( 1 0) 

599.00 DS-DD 5.99 40 Track 

859.00 DS-DD 14.95 80 Track 

999.00 3.5 DS-DD $ 15.95 



Printers 



EPSON 

LQ-500 24 Pin 350. 00 

LX-800 9 Pin 239. 00 



Gender Changer 



SERIAL 

Male to Male 8.95 

Female to Female 8.95 

Centronics 

Male to Male 9.95 

Female to Female 9.95 



Switch Boxes 



Serial/Parallel Converter 69.00 

Parallel Serial Converter 69.00 

Serial 2 Position Switch Box 27.00 

Parallel 2 Position Switch Box 27.00 

Serial 4 Position Switch Box 35.00 

Parallel 4 Position Switch Box 33.00 

Serial 4 PoslUon Crossover Switch 44.00 

Parallel 4 Position Crossover Switch 49.00 

Serial 2 Position 9 Pin Switch Box 44.00 



DATA-COMP 

5900 CASSANDRA SMITH RD. 

HDCSON. TN. 37343 



SHIPPING 

USA ADD 2% 

FOREIGN ADD 5% 

MJN $3.60 



(615)842-4600 

FOR ORDERING 

TELEX 5 1O60O6630 



An Ace of a System in Spades! The New 

MUSTANG-08/A 



I 
I 
I 
I 
I 

I 

I 
I 
I 
I 
I 



Now with 4 aerial porta standard At apeed increase to 12 Mhz CPU + on board battery 
backup and Includes the PROFESSIONAL OS-9 package - Including the $500.00 OS-9 

C compUerl Thla offer wont last forever! 



NOT 128K, NOT 512K 



iFULL 768K No wait ram 



Now even faster! 
with 12 Mhz CPU 



I 



The MUSTANG-OB™ sy<aSm took every hand from al 
I other 68006 syasmB we laded, running 0&9 68KJ 
I The MU5TANG09 Indufes OS^86K~ andtx Peter 
| States SfCDOS™ . SCDOS is a single user, single tasMnp 
| ryflBrn that takes up where 'FLEX™ left aft. SKDQS is 
| sctualy a 88XXX R£X type system (Not * TSC poduct) 



C Compile time OSS 68K Hani Disk Yi 
11J5TAN&CB 8MBOM Omtn 32ese 

Other poouhr BOOS a/sam tmh OSssc 

MUSTANG-Q20 0(i*i-21sse 



^ 




System feidurfn OS« 68K or SrTOOS 

Specif cat bos 



Your Chare 



CPU 


MC68D0B 


12 Mhz 


RAM 


7GaK 

Nowata*. 


25BX Q%b 


PORTS 


4-RSZE 


UCSSB1 OUART 




2-ebkPadW 


MC8E1 PtA 


CLOCK 


MNWTQ2 


Res) Tra Cb* Bel BAJ 


EPROM 


16K33(orB«( 


Sekdsbls 


aoppv 


WD1772 


SIMOmw 


HARD DtSK 


tntetue Pat 


W01Q02 Bad 



if Now more serial ports - faster CPU l 

I Battery B/U - and $850.00 OS^9 Profes- 1 
' slonal with C compiler Included! , 



*$400.00 



See Mustang-02 Ad - page 5 
for trade-in detais 




MUSTANG-08 



OK 



32 fas Rcynri 
(rtrjrr L«H 
6SK... 18.0... 9.0 
9. 8. ..6.3 



/• W I; V 

regletar long I; 

for (UO; I < BO0999; ++J); 



^ 25 Megabyte 
^ Hard Disk System 

$2,398.90 

Complete with PROFESSIONAL OSO 

includes the $500.00 C compiler. PC 

style cabinet, heavy duty power supply, 

5" DDDS 60 track floppy, 25 MegByte 

v Hard Disk - Ready to Run J 

UhaXe other 68006 systems there are several signlfcant 
dKerarcBB. The MUSTANG-08 is a full 12 Megahertz system. The 
RAM uses NO wal states, this means M bore MUSTANG type 
performance. 

Atoo, aJbwrg for addressable RDMPROM the RAM is the 
maximum allowed for a 68006. The 68008 can only address a 
total of 1 Megabytes of RAM The design afcws al the RAM 
specs (tor al predial purposes) to be utilized. What Is not 
avalabte to the user is required and rasarved for the system 

A RAM dak of 480K can be easiy ajntgured. laevrtg 288K 
free for prog/wrvSyStem RAM apace. The RAM OtSK can be 
configured to any son your appkatbn requha {system must 
have 128K in addition to Is other requirements) Leavrtg the 
remartter of the ongeial 788K for program use. Sufrkjari 
source included {oft/eta, etc) 



kelTSC 



MUSTANOOIaiaai 



kafCPI 



f 



Data-Comp Division 

A Decade of Quality Service" 




7 ^f *9t' Systans World Wkte 

Computer Publishing, Inc. 5900 Cassandm SVniih Road 
Teteprcne 615 842-4601 - Teiex 51 000^630 Mason Tn 37343 



^ 



These with SvVPC r*<ten*ty FLEX 5' - Col for spedd Mb.